• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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

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