• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Обсуждение NRF52840

pvvx

Активный участник сообщества
Easy Very Low Power BLE in Arduino Part 2 - Temperature/Humidity Monitor
Вторая часть так-же на двойку с плюсом. Нет реальных измерений – используются исключительно гипотетические “~29uA”. Присутствует и самый наихудший подбор элементов – видимо выбираются самые дорогие т.к. о качестве судится по цене(?).
К примеру MAX8881 – он на али не доступен и дорог. Но есть более дешевые и доступные XC6206 (тоже не лучший вариант).
Сравним:
MAX8881:
upload_2020-1-7_17-53-36.png
XC6206 (до 2 руб штучка с доставкой):
upload_2020-1-7_17-53-57.png upload_2020-1-7_17-56-20.png
:)

Мне вот не подошел XC6206, т.к. в аналогичном варианте, описанном в статье, с выводом графика температуры и напряжения c шагом 2 минуты у меня JDY-10 потребляет менее 3 uA и при TX +8 дБ (убрал некоторые утечки программным путем, что немного скорректировало прошлый график https://esp8266.ru/forum/attachments/upload_2019-12-29_21-16-50-png.8469/). XC6206 увеличивает ток на 1/3 !
И при этом я никаких громадных библиотек и дорогущих программаторов не использовал и не хочу, та и всё заказано самое дешманское с али ради спортивного интереса... :)
 

nikolz

Well-known member
Easy Very Low Power BLE in Arduino Part 2 - Temperature/Humidity Monitor
Вторая часть так-же на двойку с плюсом. Нет реальных измерений – используются исключительно гипотетические “~29uA”. Присутствует и самый наихудший подбор элементов – видимо выбираются самые дорогие т.к. о качестве судится по цене(?).
К примеру MAX8881 – он на али не доступен и дорог. Но есть более дешевые и доступные XC6206 (тоже не лучший вариант).
Сравним:
MAX8881:
Посмотреть вложение 8549
XC6206 (до 2 руб штучка с доставкой):
Посмотреть вложение 8550 Посмотреть вложение 8551
:)

Мне вот не подошел XC6206, т.к. в аналогичном варианте, описанном в статье, с выводом графика температуры и напряжения c шагом 2 минуты у меня JDY-10 потребляет менее 3 uA и при TX +8 дБ (убрал некоторые утечки программным путем, что немного скорректировало прошлый график https://esp8266.ru/forum/attachments/upload_2019-12-29_21-16-50-png.8469/). XC6206 увеличивает ток на 1/3 !
И при этом я никаких громадных библиотек и дорогущих программаторов не использовал и не хочу, та и всё заказано самое дешманское с али ради спортивного интереса... :)
Вы как-то не там изливаете свое негодование .
Пишите авторам статей, на которые я дал ссылки в качестве информации для Вас. Причем чел сделал BLE Устройства на NRF еще за год до Ваших кывыряний.,
И при этом никого не обкакал а просто рассказал , что у него получилось.
Мне его статья понравилась, и привел ее для информации.
И замечу к Вашему удивлению , что привожу ссылки исключительно в качестве информации. Если Вы знаете, то нахрена читаете, а если не знали - то нахрена плюете.
Это риторические вопросы- отвечать не утруждайтесь.
-------------------------
Вы как в анекдоте:
Потеряли сто рублей у забора,
а ищите у фонаря - где светло, а не где потеряли.
----------------------
 

pvvx

Активный участник сообщества
Вы как-то не там изливаете свое негодование .
Всё там.
Пишите авторам статей, на которые я дал ссылки в качестве информации для Вас. Причем чел сделал BLE Устройства на NRF еще за год до Ваших кывыряний.,
И при этом никого не обкакал а просто рассказал , что у него получилось.
Мне его статья понравилась, и привел ее для информации.
Привели ссылку на всемирную помойку. Говорите что понравилось, но какаете на других :)
Вам и отвечаю - нет там того, что вы указывали.
И замечу к Вашему удивлению , что привожу ссылки исключительно в качестве информации. Если Вы знаете, то нахрена читаете, а если не знали - то нахрена плюете.
Это риторические вопросы- отвечать не утруждайтесь.
На вашу устаревшую (по вашим критериям) информацию дал более свежую. :p
Вам опять не нравится и вы какаете. Как ни крути - @nikolz научился в вузе только какать :) :)
 

pvvx

Активный участник сообщества
А теперь к смыслу. Чип из заголовка выпускается уже много лет, но Arduino от “сообщества” под него нет.
Есть ковыряния в старых версиях либ от Nordic к более старым чипам, а новые SDK для nRF52840 от Nordic так и не освоены. Т.е. никакой поддержки режимов малого потребления в Arduino и у её любителей не освоено, что ранее и было указано мной в профильной теме по nRF52840.
Там же и описано – Adafruit имеет более расширенную поддержку для nRF52840 в своей версии Arduino.

@nikolz – вы давно уже закупили модули с nRF52840, как и TLSR8266 (даже ранее меня :) ), но походу вам им их не освоить, не включить, вот и какаете тут на других, носитесь с истерикой и плодите темы - "скажите, опишите а как этот чип?"
На что вам и даны ответы, да с техническими сравнениями с другими :p
Вуза то вы не оканчивали, по тому не понимаете технических параметров и как оно развивается в мире... одни акакии.. :)
 

pvvx

Активный участник сообщества
Итог всех последних приведенных ссылок акакием @nikolz в сжатом виде:
По ПО и Arduinio: Support for nRF52840 · Issue #395 · sandeepmistry/arduino-nRF5
По "Купите отладчик от SEGGER" - в инет нет ни одного примера как включить отладку на nRF чипах (причина известна :) ).
 

pvvx

Активный участник сообщества
Что-же у нас в реальности Arduino с предлагаемыми дешевыми модулями @nikolz ?
А ничего - беспросветная тьма. Мало того, что сами чипы nRF52840 разные , но и выводы у модулей разные...
Из поддерживаемых модулей с nRF52840 имеется модули only из дорого набора:
upload_2020-1-8_18-1-59.png
+ закрытый доступ к Adafruit серверам из России и невозможность детей и @nikolz-ов заменить загрузчик в любом модуле с nRF52840 для работы со штатными средствами Arduino.
 

pvvx

Активный участник сообщества
Скетч с беконом:
Код:
#include <bluefruit.h>

#define URL   "[URL]https://www.adafruit.com[/URL]"

// Create an EddyStone URL with rssi at 0m = -40 and URL as defined above
EddyStoneUrl eddyUrl(-40, URL);

void setup()
{
//  Serial.begin(115200);
//  while ( !Serial ) delay(10);   // for nrf52840 with native usb

//  Serial.println("Bluefruit52 EddyStone URL Example");
//  Serial.println("---------------------------------\n");

  Bluefruit.begin();
  Bluefruit.setTxPower(8);    // Check bluefruit.h for supported values
  Bluefruit.setName("Bluefruit52");

  // Setup the advertising packet
  startAdv();

//  Serial.println("Broadcasting EddyStone URL, open Google Physical Web app to test");
}

void startAdv(void)
{
  // Advertising packet
  // Set the beacon payload using the BLEBeacon class populated
  // earlier in this example
  Bluefruit.Advertising.setBeacon(eddyUrl);

  // Secondary Scan Response packet (optional)
  // Since there is no room for 'Name' in Advertising packet
  Bluefruit.ScanResponse.addName();
 
  /* Start Advertising
   * - Enable auto advertising if disconnected
   * - Timeout for fast mode is 30 seconds
   * - Start(timeout) with timeout = 0 will advertise forever (until connected)
   *
   * Apple Beacon specs
   * - Type: Non connectable, undirected
   * - Fixed interval: 100 ms -> fast = slow = 100 ms
   */
  //Bluefruit.Advertising.setType(BLE_GAP_ADV_TYPE_ADV_NONCONN_IND);
  Bluefruit.Advertising.restartOnDisconnect(true);
  Bluefruit.Advertising.setInterval(160, 160);    // in unit of 0.625 ms
  Bluefruit.Advertising.setFastTimeout(30);      // number of seconds in fast mode
  Bluefruit.Advertising.start(0);                // 0 = Don't stop advertising after n seconds
}

void loop()
{
  // Toggle both LEDs every second
//  digitalToggle(LED_RED);
  delay(1000);
}
Код:
Скетч использует 73108 байт (8%) памяти устройства. Всего доступно 815104 байт.
Глобальные переменные используют 11800 байт (4%) динамической памяти, оставляя 225768 байт для локальных переменных. Максимум: 237568 байт.
Upgrading target on COM9 with DFU package t:\Tmp\arduino_build_269381\eddystone_url.ino.zip. Flow control is disabled, Single bank, Touch disabled
########################################
########################################
########################################
#########################
Activating new firmware
Device programmed.
Включение питания:
upload_2020-1-9_5-7-57.png
Стартовая инициализация длиннее чем у любого рассмотренного чипа BLE и при этом ток больше. Это запускается хваленый встроенный DC-DC, затем boot-loader c DFU, потом инится Arduino.
Далее простейший маяк, и мигание светодиодом. Светодиод можно вычесть - показана разница и минимум жручки nrf52840 со своим работающим DC-DC:
upload_2020-1-9_5-13-24.png
Просыпание CPU вызывает всплеск в 7 мА (у других чипов до 3..5-ти)...
Клацание (пересчет) таймером (точно не понять из-за DC-DC) > 0.3 мА.
 

pvvx

Активный участник сообщества
@nikolz - Т.е. я правильно подсчитал, что не смог ваш любимый автор:
При выключенном мигании мультиметр показывает через шунт 1830R рекламу ~ 140 мВ и подключение ~ 130 мВ. Осциллограф показывает ~ 180 мВ рекламы и ~ 160 мВ подключен.
Это ~ 100uA рекламы и ~ 90uA подключен.

Calculate 4 digit SMD resistor: 1830 = 183 Ом
0.140В/183Ом = 0.000765 A
В моих замерах (графиках) чуток больше, т.к. есть цепь в 1 МОм на первичном DC-DC от USB и она травит... Такой модуль.
 

pvvx

Активный участник сообщества
Какие есть варианты снижения потребления на nRF52840(?).

Существует две концепции – sleep и deep-sleep.

Режим c использованием sleep отличается тем, что при засыпании система частично сохраняется. Но, в данных режимах потребление не самое низкое из-за утечек на сохранение RAM, всех регистров CPU, тактирование прочих встроенных устройств и кварцевого генератора. Но основное преимущество от deep-sleep - это быстрое восстановление и реакция на событие. Имеет смысл использовать при паузах засыпания до десятков секунд. В таком варианте общее потребление выходит менее чем с использованием deep-sleep исключительно за счет быстрого старта.

Среднее потребление чипа nRF52840 в режимах sleep при усердной оптимизации (отключать всё, что можно ) составит от 5 мкА + от 400 мкА таймера (823 мкА по докам). Старт в 1..2 мс x 5 мА.

При использовании deep-sleep система полностью сбрасывается и при просыпании требуется полная инициализация. На эту процедуру, при использовании стандартного boot-loader и библиотек от Nordic уходит не менее 800 мс работы CPU на 64MHz (500 мс boot-loader + 300 мс приложение и BT стек). Тут мы можем сократить издержки работы boot-loader-а, просто выкинув его. Но вот с частью проприетарных либ от Nordic ничего поделать не сможем. Получаем предполагаемый итог каждого старта (просыпания) от 300 мс x 5 мА и в самом deep-sleep 0.9 мкА утечек + от 400 мкА таймера (823 мкА по докам).


В среднем и выходят такие формулы без использования RF части:

Средний ток в sleep =( время паузы в мс * 500 мкА + 1 * 5 мА)/ ( время паузы в мс + 1)
Средний ток в deep-sleep = (время паузы в мс * 500 мкА + 300 * 5 мА) /( время паузы в мс + 300)

Работа RF части при маяке известна – это импульсы по 350 мкс передачи на три канала с паузами в 100..300 мкс и пару мс RX - ожидание ответа. Ожидание ответа может не быть, если это чистый маяк без обратной связи.


Т.е. формула расчета при TX +8 дБ для данного SoC:
Средний ток выдачи маяка по докам = (5*(0.35+0.2) *3 + 28*0.35*3 )/( (0.35+0.2) *3) = 22.8 мА

Передавать маяк для обычного устройства BLE с соединением требуется точно. При больших периодах точности встроенного RC генератора не хватает - чип долго подключается, да плохо работает при соединении... Это и описано в статьях приведенных @nikolz (там указано проявление уже при маяке более 1 сек)...
На других чипах без проблем пауза в 3 сек, а на данном пока не тестировал.
 

nikolz

Well-known member
Что-же у нас в реальности Arduino с предлагаемыми дешевыми модулями @nikolz ?
А ничего - беспросветная тьма. Мало того, что сами чипы nRF52840 разные , но и выводы у модулей разные...
Из поддерживаемых модулей с nRF52840 имеется модули only из дорого набора:
Посмотреть вложение 8555
+ закрытый доступ к Adafruit серверам из России и невозможность детей и @nikolz-ов заменить загрузчик в любом модуле с nRF52840 для работы со штатными средствами Arduino.
Даю подсказку, как программировать чипы NRF без JLink и переделыванием ST-Link.
-----------------------
1) Примеры и готовые прощивки есть в NRF52_SDK. Их можно собирать make из командной строки.
2) Читать и писать флеш NRF52XXX можно с помощью OPENOCD и ST-Link.
В результате получаем это
upload_2020-1-12_15-25-12.png
-------------------------
Не так страшен черт, как его малюет pvvx - любитель ужастиков.
 

pvvx

Активный участник сообщества
Не так страшен черт, как его малюет pvvx - любитель ужастиков.
Это хорошо, что вам удалось получить доступ к модулю.
Теперь вам надо проверить работу рекомендованных сред, таких SEGGER Embedded Studio и Arduino.
Программаторы, доступные в Arduino:
upload_2020-1-12_21-17-35.png
SEGGER при работе с леваком (не его программаторами) пишет такие сообщения:
upload_2020-1-12_21-24-10.png
Причина проста - SEGGER не договаривался с ST на программирование Nordic чипов.
Только на большом фирменном J-Link, за который надо прилично заплатить.
Аналогичная ситуация при втыкании всяких школьных версий J-link и прочего барахла...
 

pvvx

Активный участник сообщества
It supports the standard Nordic Software Development Tool-chain using GCC, Keil and IAR.
## Hardware Features

* Program/Debug options with DAPLink
- MSC - drag-n-drop programming flash memory
- CDC - virtual com port for log, trace and terminal emulation
- HID - CMSIS-DAP compliant debug channel
- WEBUSB HID - CMSIS-DAP compliant debug channel

Школьная (типа бесплатная) версия Keil имеет ограничения по оптимизации и размеру кода, несовместимые с nRF52840.
IAR - дорог...
Вам остается GCC - прикручивать оболочку будете сами...
 

pvvx

Активный участник сообщества
Так-же вам советую ознакомиться с лицензиями на сайте Nordic и в любом файле исходников:
Copyright (c) Nordic Semiconductor ASA
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form, except as embedded into a Nordic Semiconductor ASA integrated circuit in a product or a software update for such product, must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of Nordic Semiconductor ASA nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
4. This software, with or without modification, must only be used with a Nordic Semiconductor ASA integrated circuit.
5. Any software provided in binary form under this license must not be reverse engineered, decompiled, modified and/or disassembled.
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

(Если сложно по ангельски, жмите кнопами мыши перевести на сообщении.)

По описанным причинам чип не интересен.
 

pvvx

Активный участник сообщества
А тут точный список поддерживаемых программаторов: adafruit/Adafruit_nRF52_Arduino
ST-Link не наблюдается. Ничего - напишите сами скрипты...
 

pvvx

Активный участник сообщества
Упали цены на модуль NRF52840 (229 руб).
Я вам тут ещё накопал. Данные модули ещё и не имеют этой индуктивности в DC/DC:
upload_2020-1-13_0-50-42.png
Выведена ножка - припаяте...

Но и параметры по даташиту на REG0 гласят:
High voltage mode operating voltage: 5.5 V (от USB запитать можно?)
IEXT,OFF External current draw10 allowed in High voltage mode (supply on VDDH) during System OFF: 1 mA (система спит - эффективность, его КПД = 0.000000... % ? Не зря на других модулях стоит отдельный DC-DC для питания от 2.7 до 6 В и более?)
Minimum voltage drop in REG0 (difference between voltage supplied on VDDH pin and voltage output on VDD pin): 0.3 V (полный фиаско)
Про максимальный ток, например запитать какой датчик от него на 3.3В, ничего не сказано. (найдите, подскажите)
 

pvvx

Активный участник сообщества
Встает вопрос - а может ли данный чип питаться от стандартного li АКБ (заряженный 4.2В) без внешних костылей? Т.е. зачем эти навороты с DC/DC REG0?
 

pvvx

Активный участник сообщества
На ‘nRF52840 USB Dongle’ (PCA10059) от Nordic данная индуктивность стоит, питание включено от USB через REG0. Выход DC/DC REG0 выведен на разъем модуля как ‘VDD OUT’. А про “нагрузочная способность” где почитать?
 

nikolz

Well-known member
@nikolz - пора на вас заявлять, т.к. вы уже нарушили п.п.5 :p :)
Adafruit nRF52 Arduino имеет другую лицензию:
adafruit/Adafruit_nRF52_Arduino
Стукачек вы наш.
------------------
Это хорошо, что вам удалось получить доступ к модулю.
Теперь вам надо проверить работу рекомендованных сред, таких SEGGER Embedded Studio и Arduino.
Программаторы, доступные в Arduino:
Посмотреть вложение 8609
SEGGER при работе с леваком (не его программаторами) пишет такие сообщения:
Посмотреть вложение 8610
Причина проста - SEGGER не договаривался с ST на программирование Nordic чипов.
Только на большом фирменном J-Link, за который надо прилично заплатить.
Аналогичная ситуация при втыкании всяких школьных версий J-link и прочего барахла...
И нафига это надо?
Написать прогу можно в любом редакторе текста
запрограммировать модуль можно с помощью OPENOCD и STLink
отладку любители делают методом написал-прошил- исправил
Но если пользователь продвинутый, то отладить можно с помощью OPENOCD
В итоге - никаких нарушений лицензионных соглашений, как у Вас с Вашими костылями для STLink.
----------------------
 
Сверху Снизу