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

Обсуждение NRF52840

pvvx

Активный участник сообщества
И чего с ними делать? Mesh?
Примеры через AT команды нашел, но это не для слабой батарейки.
А что вас смутило в Mesh? Там вечная приемо-передача и китайцы правильно написали - 30 mA при TX +10 дБ
У nRF52840 при TX +8 дБ > 36мА:
upload_2020-1-26_7-36-51.png
Пример Addystone из Adafruit Arduino. Различий потребления при передаче не будет, если только не увеличение (в модуле кондеры по питанию импульс на передачу и не достигает максимума в 42 мА, как это будет при увеличении длины пакета).
Можете сравнить с TLSR8266 на TX +8 дБ -> https://esp8266.ru/forum/threads/power-profiler.4643/page-6#post-69820
В начале выделенного фрагмента - тумба - это включается CPU наверно для отсчета [inline]delay(1000);[/inline] и там всё тоже по PDF ~7 мА жрет CPU.
 

pvvx

Активный участник сообщества
Вот со sleep, всё что удалось выжать на MDK_USB_Dongle:
upload_2020-1-26_9-13-29.png
Порядок sleep в 400 uA питание 3.3В подано на встроенный DC-DC (второй, а не первый - у первого холостой ход от 0.8 мА!)
(нужно вычесть утечку в 20 uA на входы измерения и резистор в MDK_USB_Dongle на 1 МОм на внешний DC-DC от USB - 3 uA)
TX +8 дБ всё равно 37 мА для простого маяка...
Код:
#include <bluefruit.h>
#define URL   "https://www.adafruit.com"
EddyStoneUrl eddyUrl(-40, URL);
void setup()
{
//  Serial.end();
  Bluefruit.begin();
  Bluefruit.autoConnLed(false);
  Bluefruit.setTxPower(8);    // Check bluefruit.h for supported values
  Bluefruit.setName("Bluefruit52");
  startAdv();
  suspendLoop();
}

void startAdv(void)
{
  Bluefruit.Advertising.setBeacon(eddyUrl);
  Bluefruit.ScanResponse.addName();
  //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()
{
  waitForEvent(); 
//  delay(100);     
//  suspendLoop();
}
 
  • Like
Реакции: vad7

vad7

Active member
Проблемс лицензии Nordic в том, что исходники не выложить в паблик с патченными исходниками либ.
В адафрукте всего-лишь недоадаптировали исходники функций, упрощающих работу с железом. Им скорее это и не надо, так как в ардуино доступ к АЦП через ДМА ни кому не нужен.
В принципе можно и в бесплатной Segger Embedded Studio скомпилить. Программатор для компиляции не обязателен.

Одиночный "отсыл" не принимает никто.
У нордика есть проприетарщина - ESB.
Собственно старые nRF24L01 через нее и связываются. Технология подразумевает подтверждение получения и автоповтор при неудаче.

Само соединение BLE - это цельный процесс и там мкА не отделаться.
Ясно, значит действительно без нордика не обойтись.

Китайский - ныне второй технический язык - привыкайте :p
Спасибо, но я пока попробую обойтись. Там еще по ссылкам зачем-то названия картинками - вообще не переведешь.
 

pvvx

Активный участник сообщества
Спасибо, но я пока попробую обойтись. Там еще по ссылкам зачем-то названия картинками - вообще не переведешь.
Лиха беда начало!
Что можно сказать о TB-01/02 если ai-thinker всего пару недель как взялся за эти модули... Когда они стартовали с ESP8266 вообще ничего прочитать было невозможно, и только спустя 5 лет всё образумилось :)
У Nordic всё значительно хуже - порог вхождения = годы и не доступен для простого обывателя.
Для приспосабливания к своим проектам это ваше дело тратить свою жизнь на разборки что там натворил Nordic. Вы уже затратили на это кучу времени и теперь видимо "жалко у пчелки в попке" работает.
С Telink это проще и быстрее.
 

pvvx

Активный участник сообщества
Nordic уже более 5 лет на рынке со своими чипами BLE, но до освоения простым народом его чипы не добрались. Первую попытку разгрести кучу г. от Nordic предприняло Arduno прошлым летом с выпуском модулей на nRF52840. Но пока они дороги для наших "самодельщиков". Тут по аналогии можно сказать, что лет через 5 всё с Nordic всё образумится, если не выйдет чего-то более простого.
 

pvvx

Активный участник сообщества
То, что с Nordic требуемое время вхождения для среднестатистического пользователя превышает год можно убедиться на примерах. Для этого у нас есть подопытный @nikolz. Он уже более года ковыряется в них, но и по сей день ни одного своего "проекта" слепить не смог, а всё только изучает форумы.
 

vad7

Active member
С Telink это проще и быстрее.
Про быстрее согласен - китайский язык быстро выучишь, пока разберешься.

А что проще-то?
Как на нем сделать маложрущее устройство, которое все время спит и отсылает раз в сутки инфу?
Выяснили что блютус не подходит, еще варианты есть?

На нордик, если совсем лень писать код, можно поставить хоть mysensors, а тут что?
 

pvvx

Активный участник сообщества
Про быстрее согласен - китайский язык быстро выучишь, пока разберешься.

А что проще-то?
Как на нем сделать маложрущее устройство, которое все время спит и отсылает раз в сутки инфу?
Обычный BLE маяк (не nRF52) с периодом в 3 сек разряжает CR2032 более 10 лет. У них саморазряд больше, в большом минусе умирают, при малом - напряжение падает.
Надо ещё меньше батарейку? Ещё меньше не потянет даже вашу одиночную посылку, т.к. TX потребление у nRF52840 >42 мА. Это уже много для CR2032. (Придется вещать электролит мкФ от 2200)
Выяснили что блютус не подходит, еще варианты есть?
BLE устройство передает маяк тоже. Там есть поле "данные производителя" - вставьте туда что угодно - ограничение только по общему размеру фрейма...
На нордик, если совсем лень писать код, можно поставить хоть mysensors, а тут что?
С кем он может вязаться (mysensors)? Только с собой?
Тем более это просто софт. Все BLE чипы умеют передавать и принимать пакеты.
 

pvvx

Активный участник сообщества
Считаем сколько жрет BLE маяк снова:
В активности 4..5 мс: просыпание из sleep (см. отличия при deep-sleep) + рассылка маяка на 3 канала + прием - проверка на запрос соединения + засыпание. В данном режиме среднее до 10 мА (на каждый чип надо уточнять).
В спячке между маяками 3000 мс:
TB-01 deep-sleep + RTC - до 1.9 мкА, просыпание из deep-sleep увеличивает время активности на инициализацию от 2 мс и более (зависит от сложности кода инициализации)
TLSR826x deep-sleep + RTC - 1.7..3 мкА, deep-sleep + RTC, просыпание из deep-sleep увеличивает время активности на инициализацию (5 мА) от 2 мс и более (зависит от сложности кода инициализации)
TLSR826x sleep c таймером - до 17 мкА, просыпание из sleep вписано в 4..5 мс активности
nRF52 deep-sleep c RTC - ? (пока получены только большие неприличные числа), нужен второй кварц, выход из deep-sleep > 200 мс с жором от 7 мА на инициализацию (в Arduino > 500 мс),
nRF52 sleep - пока 400 мкА, просыпание из sleep вписано в 4..5 мс активности.
Складываем, для TLSR8266:
с deep-sleep + RTC: (3000*0.002+2*5+5*10)/(3000+2+5)=0.021949 мА
c sleep: (3000*0.017+5*10)/(3000+5)=0.033611 мА
CR2032: 100 мА.ч. 100/0.021949=4556.016219 часов = 189.834009 дня = 6.224066 месяца в режиме обычного BLE.
Надо больше - увеличиваем паузу маяков.
TLSR8266 в режиме ожидания только GPIO: 100/0.0009=111111.111111 часов = 4629.62963 дня = 151.791135 месяца = 12.649261 лет (CR2032 сдохнет сама раньше)
 

pvvx

Активный участник сообщества
Выяснили что блютус не подходит, еще варианты есть?
mysensors - это тоже BLE девайс. Mesh и Zigbee - это тоже BLE девайс.
Тем более вам писал, что Mesh шлюз следит за прикрепленным к нему BLE. Ну пропустит пару передач, что аналогично mysensors...
Нафиг этот не стандарт, который не прочитать нигде и ни кем...
 

pvvx

Активный участник сообщества
Старые маяки жрут меньше - у них предельный TX 0 дБ и дальность 10 метров по прямой в пределах видимости :p
С такими параметрами TX 0 дБ - потребление всех перечисленных чипов, включая nRF52 в режиме активности падает в два и более раз.
Уменьшение длины adven. (маяка) пакета так-же сокращает потребление и особо при TX +8 дБ, т.к. это основной жор в режиме активности.
Вечно спящий датчик, без контроля батарейки никому не нужен.
 

azt59

Member
То, что с Nordic требуемое время вхождения для среднестатистического пользователя превышает год можно убедиться на примерах. Для этого у нас есть подопытный @nikolz. Он уже более года ковыряется в них, но и по сей день ни одного своего "проекта" слепить не смог, а всё только изучает форумы.
Страшновато как-то доверяться дядюшке Ляо, который на коленке склепал чип, а его внуки написали сдк, есть вообще хоть кто-то в этой вселенной кто сможет гарантировать что чип от Telink проживет хоть сколько-то в здравии и стабильности какое либо время? флешь не посыплет бэд-блоками или не отгорит что-нибудь внутри? Да, данные по замерам потребления впечатляют, но ведь в готовый продукт вы не будете ставить этот чип, а зачем изучать то что страшно применять.

Да у нордика каша в сдк, да один дефайн переопределяет другой а другой в свою очередь еще один, да порог вхождения высокий, но производитель крупный и я както склонен ему доверять, у них шикарный дев-зон, и если немнооого постараться то можно и что-нибудь написать)))

И да, для последователей, модули с "голым" NRF52840 от ebyte(e73-2g4m08s1c) не стартуют с примерами из sdk в которых задействован softdevice и радио, без часового кварца! Причем отладчик никаких ошибок не видел, все стартовало и крутилось, но радио молчало, зачем оно так сделано, неизвестно, потрачено 2 дня( ((

IMG_20200127_212845.jpg Вот на таких костылях все ожило
 

nikolz

Well-known member
Считаем сколько жрет BLE маяк снова:
В активности 4..5 мс: просыпание из sleep (см. отличия при deep-sleep) + рассылка маяка на 3 канала + прием - проверка на запрос соединения + засыпание. В данном режиме среднее до 10 мА (на каждый чип надо уточнять).
В спячке между маяками 3000 мс:
TB-01 deep-sleep + RTC - до 1.9 мкА, просыпание из deep-sleep увеличивает время активности на инициализацию от 2 мс и более (зависит от сложности кода инициализации)
TLSR826x deep-sleep + RTC - 1.7..3 мкА, deep-sleep + RTC, просыпание из deep-sleep увеличивает время активности на инициализацию (5 мА) от 2 мс и более (зависит от сложности кода инициализации)
TLSR826x sleep c таймером - до 17 мкА, просыпание из sleep вписано в 4..5 мс активности
nRF52 deep-sleep c RTC - ? (пока получены только большие неприличные числа), нужен второй кварц, выход из deep-sleep > 200 мс с жором от 7 мА на инициализацию (в Arduino > 500 мс),
nRF52 sleep - пока 400 мкА, просыпание из sleep вписано в 4..5 мс активности.
Складываем, для TLSR8266:
с deep-sleep + RTC: (3000*0.002+2*5+5*10)/(3000+2+5)=0.021949 мА
c sleep: (3000*0.017+5*10)/(3000+5)=0.033611 мА
CR2032: 100 мА.ч. 100/0.021949=4556.016219 часов = 189.834009 дня = 6.224066 месяца в режиме обычного BLE.
Надо больше - увеличиваем паузу маяков.
TLSR8266 в режиме ожидания только GPIO: 100/0.0009=111111.111111 часов = 4629.62963 дня = 151.791135 месяца = 12.649261 лет (CR2032 сдохнет сама раньше)
CR2032 не 100 а 200 ma*час.
Но в импульсе ток по вашим замерам 30 ма, а это уже не то,
а у NRF52832 ток в импульсе 7 ма при работе внутреннего LDO. (остановился пока на нем)
и ток в режиме sleep не более 2 мка.
Да и SDK у NRF сделан по нормальному - легко встраивается в Eclipse.
а программатор мне обошелся в 3 доллара, причем лицензионный.
 

pvvx

Активный участник сообщества
CR2032 не 100 а 200 ma*час.
Но в импульсе ток по вашим замерам 30 ма, а это уже не то,
а у NRF52832 ток в импульсе 7 ма при работе внутреннего LDO. (остановился пока на нем)
Замер в студию. Или снова читаем читаем даташиты - только на CPU от 7 мА + от 7 мА передатчика при 0 дБ + прочие требуемые для работы потроха. Итого при +8 дБ, к примеру у nRF52 - это сумма в 42 мА.
и ток в режиме sleep не более 2 мка.
Очередной бред. Замер в студию.
 

pvvx

Активный участник сообщества
Страшновато как-то доверяться дядюшке Ляо, который на коленке склепал чип
Дядюшка Ляо на обычном заводе с фирменным производственным конвеером склепал чип - ему так проще и дешевле, там где делают чипы для серьезных брендов, а Nordic разместил заказ в китайском гараже - им так дешевле. Об этом указывает всё - даже не стали исправлять errata и утечки первого DC-DC, да выходной каскад RF.
 

pvvx

Активный участник сообщества
Возможно, что условия гарантии у всех разные. Например при обнаружении заказчиком брака вам бесплатно поменяют всю партию, но вы будете сами это всё тестировать (и новую партию) :)
Или платите за шутку в десять раз больше и вам отберут чипы на конвейере по вашим критериям.
Конвейер производства всё равно один для массы производителей - местных китайских аборигенов и западных брендов... Вот только для внешних - дороже :p
 

pvvx

Активный участник сообщества
а у NRF52832 ток в импульсе 7 ма при работе внутреннего LDO. (остановился пока на нем)
и ток в режиме sleep не более 2 мка.
Хотя-бы так сделайте замер, если у вас ничего приличного для измерения нет: https://esp8266.ru/forum/threads/ble-modul-jdy-10-na-chipe-tlsr8266.4654/page-11#post-69887
 

pvvx

Активный участник сообщества
Сверху Снизу