NRF52xxx. Время пробуждения

nikolz

Well-known member
Энергосбережение является актуальным для автономных устройств.

Если Вы делаете эти устройства на модуле ESP8266, то минимальное время активности,
которое можно достичь составляет не менее 110 000 мкс,
в котором 30 000 мкс занимает время работы начального загрузчика ( время пробуждения).

Применение модулей с протоколом BLE существенно сокращает это время.

Результаты NORDIC для модулей NRF52xxx:
1) Исполнение программы из RAM( не более 4 мкс),
1600057112694.png
2) исполнение программы из FLASH (не более 12 мкс)
1600057088826.png
Что в 2000 раз меньше, чем у ESP8266.
------------------------------
Почувствуйте разницу.
 

pvvx

Активный участник сообщества
Что в 2000 раз меньше, чем у ESP8266.
------------------------------
Почувствуйте разницу.
Время пробуждения у nRF52 от включения питания или перезагрузки c разными SDK, boot-loader, secure, DFU и т.д. в пару раз больше чем у ESP8266:
У nRF51/52 - от 270 мс при использования внешнего кварца, у ESP8266 - 50..70 мс с rapid-loader.
И потребление в цикле инициализации сравнимо (особенно большое по времени и току для вариантов Arduino от nRF) - т.е. разница не достигает и десятка раз.

Вы же описываете выход CPU из режима sleep и аналогичных. Среди большинства CPU в разнообразных сборках (MCU/SoC) обычно оно составляет указанное вами время, но сильно зависит от примененной ОС и кол-ва используемой периферии в проекте. И вот со второй частью (boot/SDK) для серии nRF25 не всё так уж ажурно... :p
 

pvvx

Активный участник сообщества
Тут есть несколько графиков пробуждения nRF52
и не забывайте о стартовом пиковом токе (импульсе) зарядов емкостей DC-DC и LDO у nRF52... У nRF51 по описаниям из сети он составляет боле 150 мА, что требует выбирать внешний LDO с большей защитой по току и/или корректировать базовую исходную схему от nRF по номиналам...
 

nikolz

Well-known member
Время пробуждения у nRF52 от включения питания или перезагрузки c разными SDK, boot-loader, secure, DFU и т.д. в пару раз больше чем у ESP8266:
У nRF51/52 - от 270 мс при использования внешнего кварца, у ESP8266 - 50..70 мс с rapid-loader.
И потребление в цикле инициализации сравнимо (особенно большое по времени и току для вариантов Arduino от nRF) - т.е. разница не достигает и десятка раз.

Вы же описываете выход CPU из режима sleep и аналогичных. Среди большинства CPU в разнообразных сборках (MCU/SoC) обычно оно составляет указанное вами время, но сильно зависит от примененной ОС и кол-ва используемой периферии в проекте. И вот со второй частью (boot/SDK) для серии nRF25 не всё так уж ажурно... :p
Это же не время пробуждения, а время включения.
Если я правильно понял, то на графике окно 5.8 мс, т е время пробуждения не более 5 мс, а не 270 , и в 10 раз меньше,чем у ESP.
------------------
Но в реальных задачах время старта при включении питания не имеет никого значения, так как питание не выключается во время сна.
Но Вы это и сами прекрасно знаете.
----------------------------
Тут есть несколько графиков пробуждения nRF52
и не забывайте о стартовом пиковом токе (импульсе) зарядов емкостей DC-DC и LDO у nRF52... У nRF51 по описаниям из сети он составляет боле 150 мА, что требует выбирать внешний LDO с большей защитой по току и/или корректировать базовую исходную схему от nRF по номиналам...
На приведенных графиках пиковый ток составляет 17 мА, а средний 7.5 мА. , но не 150 ма.
----------------
Резюме:
Время включения NRF52 в 10 раз меньше чем у ESP, а время пробуждения - в 2000 раз меньше, чем у ESP.
 

pvvx

Активный участник сообщества
Это же не время пробуждения, а время включения.
Если я правильно понял, то на графике окно 5.8 мс, т е время пробуждения не более 5 мс, а не 270 , и в 10 раз меньше,чем у ESP.
Это время старта внутреннего RC генератора :)
Далее boot и прочее... :p


Но в реальных задачах время старта при включении питания не имеет никого значения, так как питание не выключается во время сна.
Но Вы это и сами прекрасно знаете.
Прекрасно знаю, что время старта до выхода на стабильность аналога у кварцевого генератора и далее PLL исчисляется в мс и тысячами тактов кварца. Оно указано в PDF.
Выход в режим аналоговой части RF так-же указан в PDF :p
RF на RC - это только для игрушек и то, только после калибровки, что требует ещё времени :) :) :).

На приведенных графиках пиковый ток составляет 17 мА, а средний 7.5 мА. , но не 150 ма.
Правильно, но на 500 мс вместо 70 ! :)

Резюме:
Время включения NRF52 в 10 раз меньше чем у ESP, а время пробуждения - в 2000 раз меньше, чем у ESP.
У того-же ESP8266 время старта CPU из режима пониженного потребления измеряется несколькими тактами CPU, т.е. наносекунды :p

Резюме - вам желательно купить какой nRF52 и измерить, а потом уже писать рекламные темы.
 

nikolz

Well-known member
Это время старта внутреннего RC генератора :)
Далее boot и прочее... :p
Прекрасно знаю, что время старта до выхода на стабильность аналога у кварцевого генератора и далее PLL исчисляется в мс и тысячами тактов кварца. Оно указано в PDF.
Выход в режим аналоговой части RF так-же указан в PDF :p
RF на RC - это только для игрушек и то, только после калибровки, что требует ещё времени :) :) :).
Правильно, но на 500 мс вместо 70 ! :)
У того-же ESP8266 время старта CPU из режима пониженного потребления измеряется несколькими тактами CPU, т.е. наносекунды :p
Резюме - вам желательно купить какой nRF52 и измерить, а потом уже писать рекламные темы.
Вы предлагаете не верить документации на чип,
tSTART_HFXO Startup time 0.36 ms
tSTART_LFRC Startup time for 32.768 kHz RC oscillator 600 us
tSTART_LFSYNT Startup time for synthesized 32.768 kHz 100 us
--------------------
а верить вашим рассуждениям?
=================
А Ваши рассуждения, что ток у NRF может достигать 150 ма - это просто нонсенс.
---------------
Рассказываю для тех кто не в теме
У ESP8266 ток достигает 330 ма так как мощность передатчика 0.1 вт и кпд составляет 10%
У NRF мощность передатчика в 20 раз меньше, технология не хуже, следовательно ток в импульсе будет порядка 16 ма,
что полностью соответствует документации и реальным измерениям.
Всем понятно, почему 150 ма для NRF52 - это чушь?
----------------
У меня к Вам вопрос.
В чем цель Вашего опровержения документации и работы фирмы производителя чипов?
Показать что только Вы все делаете правильно, а все остальные в том числе и мировые производители - дураки и ничего не понимают?
Это Ваше мнения я знаю давно.
Так зачем эти Ваши рассуждения о том, что мне давно известно?
 

nikolz

Well-known member
во еще цитата из документации, в которой речь идет не про мс, а про мкс:
------------------------
Задача запуска запустит RTC. Предполагая, что LFCLK ранее был запущен и стабилен,
первое приращение счетчика (и экземпляра тикового события) обычно происходит через 30,5 МКС +/-15 МКС. В
в некоторых случаях, в частности, если RTC запускается до запуска LFCLK, это время может быть до
~250 МКС. Поэтому программное обеспечение должно ждать первого тика, если оно должно убедиться, что RTC работает.
Отправка задачи TRIGOVRFLW устанавливает счетчик на значение, близкое к переполнению. Однако, поскольку
обновление счетчика опирается на стабильный LFCLK, отправка этой задачи в то время как LFCLK не запущен запустится
LFCLK, но обновление тогда будет отложено на такое же количество времени до ~250 us.
 

pvvx

Активный участник сообщества
А Ваши рассуждения, что ток у NRF может достигать 150 ма - это просто нонсенс.
Используйте поиск: nrf52 startup power
Пример:
Далее изучите проблемку досконально: пиковый ток при старте стабилизаторов и DC-DC у nRF51/52. При слабом источнике во время броска от переключения питаний (для экономии :) ) возникает провал напряжения и сбой всего чипа...
 

pvvx

Активный участник сообщества
Это не актуально для вашей домашней игры в "программирование", но сильно актуально при производстве больших партий из-за возврата некачественного товара - работа со сбоями при определенных конфигурациях и элементах питания...
 

pvvx

Активный участник сообщества
во еще цитата из документации, в которой речь идет не про мс, а про мкс:
------------------------
Задача запуска запустит RTC. Предполагая, что LFCLK ранее был запущен и стабилен,
... будет отложено на такое же количество времени до ~250 us.
В документации числится время инициализации RF части. В вашем примере оно не учтено, что указывает её постоянную работу? :)
 

nikolz

Well-known member
Это не актуально для вашей домашней игры в "программирование", но сильно актуально при производстве больших партий из-за возврата некачественного товара - работа со сбоями при определенных конфигурациях и элементах питания...
И что же такое Вы написали в инструкции про время включения , что ваши клиенты выставили вам рекламацию и сделали возврат?
И на что они интересно ссылаются при возврате?
Неужели Вас развели ваши клиенты?
 

pvvx

Активный участник сообщества
И что же такое Вы написали в инструкции про время включения , что ваши клиенты выставили вам рекламацию и сделали возврат?
И на что они интересно ссылаются при возврате?
Неужели Вас развели ваши клиенты?
А я и не произвожу массовых устройств для домохозяек - у нас (у меня) производятся устройства с непрерывным циклом работы на 10 лет и заказчику часто пофигу что там, т.к. и обслуживание наше, т.е. за ошибки и недочеты мы платим сами.
Как пример - батарейное устройство. Пользователь, путем мытарств разборки-сборки, заменил батарейку, а она оказалась не сверх свежая - с увеличенным внутренним сопротивлением. Как итог - стартовый провал напряжения и устройство зависло... Снова разбирать и бежать в магазин за батарейками?
Выключатель на стенке работает от 5 лет и исправно включает лампочку. Не требует обслуживания. А ваш BLE? :)
 

nikolz

Well-known member
А я и не произвожу массовых устройств для домохозяек - у нас (у меня) производятся устройства с непрерывным циклом работы на 10 лет и заказчику часто пофигу что там, т.к. и обслуживание наше, т.е. за ошибки и недочеты мы платим сами.
Как пример - батарейное устройство. Пользователь, путем мытарств разборки-сборки, заменил батарейку, а она оказалась не сверх свежая - с увеличенным внутренним сопротивлением. Как итог - стартовый провал напряжения и устройство зависло... Снова разбирать и бежать в магазин за батарейками?
Выключатель на стенке работает от 5 лет и исправно включает лампочку. Не требует обслуживания. А ваш BLE? :)
Вы ушли от темы.
сначала говорите, что производитель получил рекламации.
А пример приводите, что пользователь засунул в устройство говно и предъявил рекламацию производителю.
Ну и причем здесь параметры NRF52?
Идиотов среди потребителей всегда в избытке, но это не основание, чтобы ругать производителей чипов.
 

pvvx

Активный участник сообщества
Ну и причем здесь параметры NRF52?
При том - читайте выше.
По вашим расчетам устройство работать не будет:
1. Не учтено главное предназначение - работа RF части
2. Расчетный ток у вас "пиковый ток составляет 17 мА", а реальный за 150 мА.
 

nikolz

Well-known member
При том - читайте выше.
По вашим расчетам устройство работать не будет:
1. Не учтено главное предназначение - работа RF части
2. Расчетный ток у вас "пиковый ток составляет 17 мА", а реальный за 150 мА.
может пора уже показать результаты, где ток 150 ма? или и дальше будете с потолка читать?
 

pvvx

Активный участник сообщества
может пора уже показать результаты, где ток 150 ма? или и дальше будете с потолка читать?
Дубль 2:
Используйте поиск: nrf52 startup power
Примеры:
...
 

pvvx

Активный участник сообщества
Что в 2000 раз меньше, чем у ESP8266.
------------------------------
Почувствуйте разницу.
Начнем чувcтвовать только по старту опорных источников тактирования, заглянув в спецификацию nRF52840:

5.4.4.2 64 MHz crystal oscillator (HFXO)

Power-up time for various crystals 50..210 μs

Average startup current for various crystals, first 1 ms 0.3..1 mA

The EVENTS_HFCLKSTARTED event is generated after the HFXO power up time + the HFXO debounce time has elapsed.


0.25..1 ms

Т.е. итоговое startup latency до начала (возможности) инициализации-включения RF части после глубокого sleep

более 1 ms.

По другим источникам тактирования:

5.4.4.3 Low frequency crystal oscillator (LFXO)

Startup time for 32.768 kHz crystal oscillator 0.25 s

5.4.4.4 Low frequency RC oscillator (LFRC), Normal mode

Startup time 1000 μs

5.4.4.5 Low frequency RC oscillator (LFRC), Ultra-low power mode (ULP)

Startup time 1500 μs


PLL и прочее ещё не чувствовали :), но уже разница только по hard (без учета ПО) не более 70 раз.
 

pvvx

Активный участник сообщества
Пока Nicolz выдумывает реальное применение выдернутого не столь важного параметра из общей картины для экономии питания, поглядим какова же итоговая экономия от него, если учесть:

  • Потребление только CPU в nRF52 ( running CoreMark from flash, cache enabled, DCDC 3V) - 64 mA. У среднего BLE чипа – 30..50, да и у 8266 при тесте CoreMark аналогично. Ничего выдающегося у nRF52 тут не видать.
  • Потребление в режиме sleep с уже включенными CLK и таймерами, DC-DC и прочей периферией необходимой для реализации рекламируемого Nicolz варианта реакции старта CPU (без RF(!)) – более пары мА. У среднего BLE чипа – 0.02..1 mA. Т.е. опять ничего выдающегося у nRF52 тут не видать.
Каким образом мы получим экономию, использовав описываемые Nicolz параметры? Что-то мне думается что чип nRF52 создан для работы с RF-BLE, а Nicolz пытается выдернуть характеристики актуальные для простого тупого MCU. Но у них время выхода из sleep обычно лежит в пределах до пары тактов CPU, а время полной реакции с обработкой(!) на пробуждающей сигнал зависит от времени исполнения кода прерывания. Т.е. быстрее на порядки чем тут описывает Nicolz к nRF52 :) Тут не гордиться, а скрывать надо такие показатели.

Особо умиляет время холодного страта до исполнения пользовательского кода nRF52 в Arduino, т.к. длится в несколько раз дольше, чем у ESP8266. Об ОС и прочей шелухе - примерах, SDK и прочих тулзов от Nordic лучше и не упоминать, как и о цене самого чипа…
 
Сверху Снизу