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

NRF52832 - почти даром

pvvx

Активный участник сообщества
Причем замечу, что форум про ESP8266б.
Поэтому я пишу именно про этот чип.
При этом я, в отличии от pvvx, не прыгаю как блоха,
с одного чипа на другой дабы доказать, что там лучше чем здесь.
:) :) :)
Ндас - это к ESP32 бяка, т.к. BLE у него не работает одновременно с WiFi? :)
 

pvvx

Активный участник сообщества
Главное то забыли - где фото внутренностей закупленных у данного продавца часиков? Очень много людей нарвалось, что такие "часики" продают с разными чипами и продавец даже не в курсе, т.к. зависит от переданной ему партии, а вскрыты не возвратны... :p
Мне почти всё равно какой там чип, т.к. только к одному типу из 4-х есть всё SDK + мои наработки... И только 2 типа чипов имеют нормальную дальность связи, т.к. TX у них +10дБ. NRF52832 к таковым не относится.
 

pvvx

Активный участник сообщества
NRF52832 -RAM 64;FLASH-512,CPU- Cortex M4F - лучший вариант для автономных устройств.
Да-да, очень лучший вариант для автономных устройств

Вот пример проф. работ на нем:


Pixl.js
nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash
Power Consumption
All power figures below are with the LCD on:
  • No advertising, Pixl.setLCDPower(0) - 20uA
  • Advertising - 320uA
  • Connected via BLE - 500uA
  • Backlight on - 5mA
  • 100% CPU usage running JavaScript - 5mA
  • Backlight on, 100% CPU usage running JavaScript - 10mA
  • Using NRF.findDevices to scan for devices - 12mA
This means that when running off a CR2032 battery you could expect around 20 days of battery life with light JavaScript usage, LCD on, and no backlight. Life can be significantly improved by turning the LCD off when it is not needed.

Источник <https://www.espruino.com/Pixl.js>


MDBT42Q Bluetooth Module
nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash
  • Power Consumption
  • No advertising - 5uA
  • Advertising - 80uA
  • Connected via BLE - 900uA (idle 40uA)
  • LED1 on - 10mA
  • 100% CPU usage running JavaScript - 8mA
  • Using NRF.findDevices to scan for devices - 12mA
Источник <https://www.espruino.com/Puck.js>

Bangle.js
Nordic 64MHz nRF52832 ARM Cortex-M4 processor with Bluetooth LE

Power Consumption⇠
  • Idle, accelerometer on 12.5Hz - 0.35mA
  • Idle, accelerometer on 1.25Hz - 0.15mA (default if not moved)
  • BLE Connected in high bandwidth mode - 0.5mA
  • Compass on - 2mA
  • Heart rate monitor on - 2.5mA
  • 100% CPU usage running JavaScript - 7mA
  • GPS on - 30mA
  • LCD on - 40mA
  • Turned off - 0.08mA (0.6mA if turned off via Bootloader)
Источник <https://www.espruino.com/Bangle.js>
:) :)
 

nikolz

Well-known member
Да-да, очень лучший вариант для автономных устройств

Вот пример проф. работ на нем:


Pixl.js
nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash
Power Consumption
All power figures below are with the LCD on:
  • No advertising, Pixl.setLCDPower(0) - 20uA
  • Advertising - 320uA
  • Connected via BLE - 500uA
  • Backlight on - 5mA
  • 100% CPU usage running JavaScript - 5mA
  • Backlight on, 100% CPU usage running JavaScript - 10mA
  • Using NRF.findDevices to scan for devices - 12mA
This means that when running off a CR2032 battery you could expect around 20 days of battery life with light JavaScript usage, LCD on, and no backlight. Life can be significantly improved by turning the LCD off when it is not needed.

Источник <https://www.espruino.com/Pixl.js>


MDBT42Q Bluetooth Module
nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash
  • Power Consumption
  • No advertising - 5uA
  • Advertising - 80uA
  • Connected via BLE - 900uA (idle 40uA)
  • LED1 on - 10mA
  • 100% CPU usage running JavaScript - 8mA
  • Using NRF.findDevices to scan for devices - 12mA
Источник <https://www.espruino.com/Puck.js>

Bangle.js
Nordic 64MHz nRF52832 ARM Cortex-M4 processor with Bluetooth LE

Power Consumption⇠
  • Idle, accelerometer on 12.5Hz - 0.35mA
  • Idle, accelerometer on 1.25Hz - 0.15mA (default if not moved)
  • BLE Connected in high bandwidth mode - 0.5mA
  • Compass on - 2mA
  • Heart rate monitor on - 2.5mA
  • 100% CPU usage running JavaScript - 7mA
  • GPS on - 30mA
  • LCD on - 40mA
  • Turned off - 0.08mA (0.6mA if turned off via Bootloader)
Источник <https://www.espruino.com/Bangle.js>
:) :)
Что-то Вы совсем ...
а где Ваше передовое решение? Вы же должны были впереди планеты всей сделать лучше?
А Вы на ардуинщиков ровняетесь. ай яй яй!!!
--------------
Прикольно, то что я написал о том, что это дешево, и больше ничего. Так с кем Вы спорите? и что пытаетесь доказать?
что зеленое оно перпендикулярно?
 

nikolz

Well-known member
Nordic стала пионером беспроводной связи с ультранизким энергопотреблением и помогла разработать Bluetooth Low Energy - широко распространенную беспроводную технологию. Отмеченные наградами решения Bluetooth LE компании сделали ее лидером рынка, и дополняются продуктами ANT+, Thread и Zigbee. Репутация Nordic основана на поставке передовых беспроводных технологий и инструментов разработки, которые защищают дизайнеров от сложности RF. Этот подход распространяется и на новейшую технологию Nordic-cellular IoT. Запущенное в 2018 году после четырех лет разработки, это решение NB-IoT и LTE-M использует сотовую инфраструктуру для расширения Интернета вещей.
источник: https://riscv.org/member/nordic-semiconductor/
 

nikolz

Well-known member

pvvx

Активный участник сообщества
Прикольно, то что я написал о том, что это дешево, и больше ничего. Так с кем Вы спорите? и что пытаетесь доказать?
что зеленое оно перпендикулярно?
Дешево и означает, что никому не нужно и громадную рекламу по втюхиванию неудачной ерунды. Много у вас энтих NRF52832 в доме или ещё где в автономных устройствах? :)
 

pvvx

Активный участник сообщества
Nordic стала пионером беспроводной связи с ультранизким энергопотреблением и помогла разработать Bluetooth Low Energy - широко распространенную беспроводную технологию. Отмеченные наградами решения Bluetooth LE компании сделали ее лидером рынка, и дополняются продуктами ANT+, Thread и Zigbee. Репутация Nordic основана на поставке передовых беспроводных технологий и инструментов разработки, которые защищают дизайнеров от сложности RF. Этот подход распространяется и на новейшую технологию Nordic-cellular IoT. Запущенное в 2018 году после четырех лет разработки, это решение NB-IoT и LTE-M использует сотовую инфраструктуру для расширения Интернета вещей.
источник: https://riscv.org/member/nordic-semiconductor/
Куда прилеплять SIM-чип к NRF52832 для поддержки NB-IoT и LTE-M? Может там уже он встроен? :) :) :)
 

pvvx

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

pvvx

Активный участник сообщества
NRF52832 -RAM 64;FLASH-512,CPU- Cortex M4F - лучший вариант для автономных устройств.
Ну с этим уже разобрались - это только мнение чувака @nikolz ни разу не открывавшего SDK от nRF и не державшего в руках этих чипов, но начитавшегося проплаченной рекламы от загнившего в ковид, т.е. умирающего Nordic.

Там точно NRF52832? Вы уже купили у данного продавца и согласовали что он не заменит товар?
По прямым сведениям от того, кто реверсировал "часики" на nRF52 - в данном товаре не обязательно будет nRF52.
Так что ждем ещё пару лет, когда вы купите и исследуете этот вопрос. :) :)
 

nikolz

Well-known member
пример реализации RFID на NRF52832 на протоколе ESB со средним током 3.6 мка
1613138471985.png
 

pvvx

Активный участник сообщества
пример реализации RFID на NRF52832 на протоколе ESB со средним током 3.6 мка
Посмотреть вложение 10608
1613152465267.png
Не верхнем графике, в данной программе отображены средние значения. Т.е. порядок 4.5..5.5 мА на маяк.
На нижнем видно что покупка eval-board от Nordic - пустая трата бабла, т.к. он не может показать даже правильный ток у 3-х одинаковых импульсов (см. метки 1,2,3).
Но фиг с ним.
Считаем по выбранному автором самому малому замеру (в тугриках по .200 таймов неизвестно чего от Nordic):
((4+3+6+6)*0.2)/0.8 = 4.75 mA - это средний ток куцей оцифровки за активность с выдачей маяков без возможности соединения и запросов доп. рекламы. Т.е. стандарт до ВТ 4.2 и уровень TX-RF соответствующий.
И гонит оно только метку своего MAC и не более. Уточнение позже. Ну обрезан маяк для теста - тоже фиг с ним. Ну нет у него возможности соединения для настройки - тоже фиг сним.
Питание задано 3.0В, т.к. у nRF беды с DC-DC и используют LDO чтобы получилось меньше...
Фиг тоже с ним, с тупыми устройствами и багами в чипе...
Но на первом графике имеем окно замера в 24.012 секунды с 14 интервалами -> 24.012/14 = интервал маяков 1.715 сек.
(4.75 mA * 0.8 ms)/ 1714 ms = 0.002217 mA
А написано 3.617 uA. Следовательно чип в sleep жрет 3.617-2.217 = 1.4 uA что есть дофига. Ну устарел он безбожно, но для nikolz сгодится :)
----
И что это такое в начале диаграммы до первого TX-RF? Половину времени чип перебирает HAL и RTOS от Nordic? Оно ему надо?
Автору было сложно написать что-то подобное:
main() { setuprf();
for(3 раза) send_packet(канал+i, p_маяк, размер);
sleep(1750); }
Это вся программа :) :) Но нет-же - для этого нужен чип с мегабайтной flash от Nordic!
 

pvvx

Активный участник сообщества
А теперь надо глянуть - соблюдаются хоть какие-то стандарты с тестированной заготовке по данной куцей диаграмме в "супер пупер ПО" PowerProfiler от Nordic.

Самый короткий передаваемый пакет может иметь длину 80 бит при времени передачи 80 мкс. Самый длинный пакет может быть 376 бит со временем передачи около 0,3 мс.

И далее очень сложные для усвоения nikolz выписки из стандартов, по которым он всё равно не сможет понять, что замер на диаграмме от безответного маяка и урезанный по самое... :

2. ПРОТОКОЛ ВОЗДУШНОГО ИНТЕРФЕЙСА
Core_V4.0: Том 6 Часть B. 4 ПРОТОКОЛ ВОЗДУШНОГО ИНТЕРФЕЙСА

2.1 4.1 Межкадровое пространство
IFS: интервал времени между двумя последовательными пакетами на одном канале. Время от последнего бита в предыдущем пакете до первого бита в следующем. T_IFS = 150 мкс

2.2 4.2 Требования к времени
LL работает в 2 режимах точности: активный и спящий.

  • Активно : состояние подключения или рекламы.
  • Сон : другие состояния.
2.2.1 Активная точность часов
Начало пакета должно быть передано через 150 ± 2 мкс после окончания предыдущего пакета.

2.2.2 Точность часов сна
Интервал подключения в 1 секунду с общей точностью часов ожидания ± 1000 ppm даст окно, расширяющее каждую сторону от точки привязки на 1 мс плюс 16 мксек, при условии, что подчиненный контроллер использовал свои часы ожидания в течение почти полного интервала подключения.

2.3 4.3 Фильтрация устройств канального уровня
Фильтр хоста для устройства на основе текущего состояния (реклама, запуск и сканирование).

В основном это касается того, как каждое состояние может обрабатывать запросы от других устройств, кроме того, которое в настоящее время рассматривается для подключения. Чтобы представить себе, как справиться на этом этапе

2.4 Состояния отсутствия подключения
2.4.1 Ожидание
состояние по умолчанию, нет активности ни Tx, ни Rx

2.4.2 Реклама
2.4.2.1 Выбор канала

Хост делает выбор на основе используемых / неиспользуемых каналов.

2.4.2.2 Интервал рекламы
T_advEvent = advInterval + advDelay
  • advInterval= x * 0,625 мс = от 20 до 10240 мс
    • диапазон x -> от 32 до 16384
    • неориентированное событие (сканируемое или неподключаемое), затем advInterval <100 мс
    • подключаемый даже неориентированный, тогда advInterval > = 20 мс
  • advDelay = случайное число, генерируемое LL между 0-10 мс

Задержка рекламы для протокола Bluetooth Energy

2.4.2.3 Подключаемое незавершенное событие (ADV_IND)
  • ОТПРАВИТЬ
    • ADV_IND от рекламодателя .
    • Время между двумя ADV_IND <= 10 мс.
    • Состояние рекламы закрыто в пределах интервала, как показано на рисунке ниже.
  • Ответ
    • сканер ИЛИ инициатор
      • Сканер : SCAN_REQ, чтобы запросить дополнительную информацию о рекламодателе.
      • Инициатор : CONNECT_REQ для запроса ввода состояния подключения.
    • LL слушает на тех же каналах.
    • Если SCAN_REQ содержит адрес устройства, ответьте SCAN_RSP на том же канале, если только не заблокирован фильтром.
    • Если CONNECT_REQ содержит адрес устройства, перейдите к состоянию подключения в роли ведомого.

Индекс рекламы для протокола Bluetooth с низким энергопотреблением

Состояние подключаемой рекламы, которое не получает ответа

Запрос на сканирование для протокола Bluetooth с низким энергопотреблением

Подключаемое состояние рекламы с помощью SCAN_REQ и SCAN_RSP от сканера

Запрос на подключение для протокола Bluetooth с низким энергопотреблением

Подключаемое состояние рекламы с CONNECT_REQ из инициализатора
2.4.3 Сканирование
  • Два типа сканирования:
    • Пассивный: только пакеты Rx и без TX. Это то, что предлагает Ubertooth .
    • Активно: может запрашивать у Рекламодателя дополнительную информацию.
  • Нет требований к срокам.
  • Нет правил выбора канала.
  • Действия:
    • Слушайте рекламные каналы на время scanWindow .
    • Каждый 'scanInterval' прослушивает полный период scanWindow , где scanInterval - это время между концом одного окна и началом другого.
v * Фильтры применяются при получении рекламных PDU.

Активное сканирование
  • Обменяйтесь SCAN_REQ и SCAN_RSP с рекламодателем.
  • Запустите backOff, чтобы минимизировать конфликты с параметрами: backOffCount ' и upperLimit . Оба устанавливаются в ОДИН при входе в режим сканирования.
  • Установка backOffCount ' и upperLimit:
    • LL слушает SCAN_RSP.
    • Каждые два последовательных сбоя верхний предел удваивается.
    • Каждые два последовательных успеха верхний предел уменьшается вдвое.
    • Максимальное значение upperLimit = 256.
    • При получении ADV_IND и ADV_SCAN_IND, если требуется SCAN_REQ:
      • если backOffCount == ZERO отправить SCAN_REQ.
      • иначе уменьшить backOffCount на единицу.
2.4.4 Запуск
  • Нет требований к срокам.
  • Нет правил выбора канала.
  • LL прослушивает scanWindow каждый scanInterval .
  • scanWindow и scanInterval должны быть меньше или равны 10,24 с.
  • Отвечает рекламодателям PDU CONNECT_REQ, если это разрешено.
2.5 Состояние подключения
  • LL переходит в состояние подключения, когда:
    • Инициатор отправляет CONNECT_REQ.
    • Рекламодатель получает CONNECT_REQ.
  • Связь:
    • Создано : ввод состояния подключения рекламодателем или инициатором.
    • Установлено : после успешного получения пакета данных.
  • Роли:
    • master: управляет синхронизацией события подключения.
    • раб
2.5.1 Событие подключения
  • Соединение - это точка синхронизации между ведущим и ведомым.
  • Соединение считается открытым, если и ведущий, и ведомый участвуют в обмене Tx / Rx.
  • Мастер закрывает соединение, если от подчиненного ничего не получено.
  • Подключение может быть прервано любым устройством.
  • Начало соединения называется точкой привязки, с которой мастер начинает передачу данных.
  • Мастер обеспечивает закрытие соединения за T_IFS перед точкой привязки.
  • Если после задержки ведомого устройства ничего не получено, ведомое устройство прослушивает каждую привязку.
  • connEventCounter ', 16-битный счетчик событий, поддерживаемый как ведущим, так и ведомым устройством.
    • увеличивается мастером при каждом событии соединения.
    • значения от 0xFFFF до 0x0000
    • процедура управления синхронизацией LL.
2.5.2 Тайм-аут наблюдения
  • connSupervisionTimeout макс. время между двумя полученными PDU пакетов данных до того, как соединение считается потерянным.
connSupervisionTimeout > (1 + connSlaveLatency) * connInterval
Кратно 10 мс
Диапазон от 100 мс до 32 с
  • Если connSupervisionTimeout == 6 * connInterval ТО соединение теряется.
  • Если соединение потеряно -> перейти из состояния подключения в режим ожидания.
2.5.3 Окно передачи событий соединения
  • CONNECT_REQ определяет, когда мастер отправляет первый пакет о состоянии соединения, чтобы установить точку привязки.
  • Три параметра для определения окна передачи: tranmistWindowOffset, TransmitWindowSize и connInterval.
  • transmitWindow начинается (transmitWindowOffset + 1,25 мс) после того, как CONNECT_REQ концов.
  • TransmitWindowSize == размер окна.
  • connInterval используется для расчета смещения и размера окна.
transmitWindowOffset : у * 1,25 мс, диапазон [0ms - connInterval ]
y -> [0 - connInterval / 1,25 мс]
y - смещение окна в пакете CONNECT_REQ

transmitWindowSize : 1,25 х *, диапазон [1,25 мс - мин (10ms, ( connInterval -1.25ms))]
x -> [1 - мин. (10 мс, ( connInterval -1,25 мс)) / 1,25]
x - размер WinSize в пакете CONNECT_REQ

Начало первого пакета после CONNECT_REQ:
(1,25 мс + смещение окна передачи) <= первый пакет <= (1,25 мс + смещение окна передачи + размер окна передачи)
 

pvvx

Активный участник сообщества
2.5.4 Настройка подключения - Мастер
  • Уведомить хост о переходе в состояние подключения.
  • Инициатор переходит в состояние подключения после отправки CONNECT_REQ в роли мастера .
  • Мастер сбрасывает T LLconnSupervision ( connSuperVisionTimeout ).
  • использовать индекс канала.
  • первый отправленный пакет устанавливает точку привязки.
  • второй пакет в connInterval
Мастер-роль для протокола Bluetooth с низким энергопотреблением


2.5.5 Настройка подключения - ведомое устройство
  • Рекламодатель переходит в режим подключения после получения CONNECT_REQ для работы в режиме SLAVE.
  • уведомить хост о работе в режиме SLAVE.
  • сбросить T LLconnSupervision .
  • Первое событие соединения использует данные индекса канала для настройки канала.
  • Прослушайте первый пакет в окне передачи.
  • первый полученный пакет определяет точку привязки.
  • если в первом окне нет пакета, попробуйте следующее после connInterval .
  • Использовать следующий канал из индекса канала и увеличивать connEventCount
  • Подчиненное устройство остается активным до получения NESN от основного пакета.
Роль ведомого устройства для протокола Bluetooth с низким энергопотреблением
 

pvvx

Активный участник сообщества
На nRF52832 есть термометры-гигрометры от Xiaomi. Все они используют большую батарейку, чем на чипах других производителей.
К примеру одинаковый по чипу датчика и имеющий LCD аналогичный по знакам как у LYWSD03MMC XIAOMI Bluetooth термометр но на nRF52832 требует больший элемент питания:
 
Сверху Снизу