Кто-то работал с Bluetooth/Zigbee module BL702?
- Войдите на сайт для отправки комментариев
Ср, 04/05/2022 - 07:13
Всем привет
Китайцы выпустили платки на SOC BL702 с встроенным Buetooth/Zigbee на Risc-V
https://aliexpress.ru/item/1005003691983973.html
Есть для них SDK с примерами. Даже два:
https://github.com/bouffalolab/bl_iot_sdk
https://github.com/bouffalolab/bl_mcu_sdk
Есть довольно куцая документация:
https://dev.bouffalolab.com/media/doc/702/open/datasheet/en/html/content/Functional.html
https://dev.bouffalolab.com/media/doc/702/open/reference_manual/en/html/index.html
Кто-то работал с такими? В первую очередь интересуют режимы энергопотребления. Сколько в каком потребляет и как с ними работать?
В режиме сна можно хранить до 64 Кбайт в OCRAM (On-Chip RAM) четырьмя блоками по 16 Кбайт на выбор: 0-16, 16-32, 32-48 и 48-64 Кбайт. Но в режиме максимальной экономии энергии (гибернации) у BL70x сохранение данных возможно только в части ОЗУ размером всего лишь 4 Кбайта, под названием RETRAM (RETention RAM).
Ещё одна засада из документации чипа BL70x и модуля XT-ZB1: Минимальное рабочее напряжение модуля 2.5В, и зависит от упакованной с BL702C-10 в одном корпусе чипа Flash-памяти объёмом 1 Мбайт, у которой минимальное напряжение питания составляет судя по всему 2.3В. То есть при просадках напряжения на литиевом элементе CR2032 вся система может как сбоить, так и полностью стопориться. Можно конечно использовать костыль в виде повышающего DC-DC преобразователя и включать его в моменты просадок напряжения ниже 2.7В. Короче сэкономили китайцы на качестве чипа Flash-памяти, поэтому цена BL702C-10 намного ниже конкурентов, у которых минимальное рабочее напряжение обычно составляет 1.7-1.8В. Хотя для стационарных и аккумуляторных устройств такое низкое рабочее напряжение не требуется.
--------------------------------------------------------------------------------------
Немного информации с https://esp8266.ru/forum/threads/bl602-risc-v-wifi-i-bluetooth-5-0-le-soc.5508/post-83579
1) BL706C-10 c 31 gpio стоит дешевле чем мелкий расширитель I/O от TI и прочих :) В "нагрузку" в нём идёт BLE и ZigBee, который отключается.
2) Рабочего варианта либ и/или правильного ld-скрипта к BL702 для BLE с низким потреблением нет. И пока в LowPower полная неопределенность, по которой данный чип не имеет никакой конкуренции в сфере батарейного питания (CR2032 и т.д.) с другими аналогичными BLE чипами. Минималка необходимого для BLE/Zigbee режима sleep по докам у BL70x - 10 мкА, а сама система и прочее ПО пока не адаптирована даже для такого использования. Но и 10 мкА - это уже много - на рынке толпа более дешёвых SoC с лучшими показателями. Это учитывая по выборке наличие в чипе USB, поддержку BLE/MESH/Zigbee и т.д. Т.е. Bouffalo тормозит. Если так и останется - их текущие чипы не пойдут в массовое серийное производство и будут дороги...
3) Не для CR2032. В случае с BT пики RX/TX RF поменьше чем у ESP32C3. Наверно технология в нанах поменьше, но не сильно. Нет поддержки удержания нормального объёма памяти в режимах deep-sleep. Предоставлен малый кусок RETRAM в который не лезут данные, необходимые для поддержки быстрого просыпания в BLE (без развёртывания из малого куска). В итоге не конкурент типовым BLE чипам.
4) В примерах https://github.com/bouffalolab/bl_mcu_sdk даны демки для режимов sleep и deep-sleep:
examples\pm\hbn_mode_wakeup
examples\pm\pds_mode_wakeup
examples\ble\ble_pds
--------------------------------------------------------------------------------------
Документация на официальном сайте Buffalo Lab: https://dev.bouffalolab.com/document
Документация PDF на BL70x в SDK: https://github.com/bouffalolab/bl_mcu_sdk/tree/master/docs/chipSpecification/bl70x_docs
Онлайн Datasheet на BL70x: https://dev.bouffalolab.com/media/doc/702/datasheet/en/html/
Онлайн Reference Manual на BL70x: https://dev.bouffalolab.com/media/doc/702/reference_manual/en/html/
Библиотека обращения к регистрам BL70x на языке Rust: https://github.com/andelf/bl702-pac
Документация, созданная из её кода: https://docs.rs/bl702-pac/latest/bl702_pac/
В ней имеются адреса регистров радиомодуля (RF), которыми производитель не делится, используя готовые библиотеки в бинарном виде: https://github.com/bouffalolab/bl_mcu_sdk/tree/master/components/ble/bl702_rf/lib
Инструменты разработчика: https://dev.bouffalolab.com/download
Форум разработчиков: https://bbs.bouffalolab.com/
-------------------------------------------------------------------------------------
Официальная (?) документация на модули XT-ZB1 и XT-ZB2: http://www.bl602.fun/2497738
--------------------------------------------------------------------------------------
User Manual PDF на модуль XT-ZB1, исправлена распиновка: https://cloud.mail.ru/public/ttTM/WMLuPrZ4o
User Manual PDF на модуль XT-ZB2, удалены водяные знаки: https://cloud.mail.ru/public/Zjq1/EPG1PsAWX
Datasheet PDF на BL70x версии 2.5, исправлены обнаруженные ошибки: https://cloud.mail.ru/public/AmST/crF1Qvn8M
Reference Manual PDF на BL70x версии 1.2, исправлены обнаруженные ошибки: https://cloud.mail.ru/public/ZkL2/diDv2wwfQ
Раздел Power Consumption из Datasheet PDF на BL70x версии 2.0, наиболее полный, но неизвестно насколько достоверный: https://cloud.mail.ru/public/7Gn5/q41ZJWRqT
--------------------------------------------------------------------------------------
Приобрёл пять модулей XT-ZB1: https://aliexpress.ru/item/1005003692006494.html
Там же в наличии есть XT-ZB2: https://aliexpress.ru/item/1005003691950877.html
С одного из них снял экран и обнаружил на плате детектор падения напряжения (судя по маркировке AFAA это может быть MAX809R или CN809R на 2.63В) в цепи сброса (EN и PU_CHIP) BL702C-10, который необходим для предотвращения запуска процессора раньше Flash-памяти. Катушка индуктивности для импульсного DC-DC преобразователя напряжения отсутствует. Кварцевого резонатора 32.768 кГц для часов реального времени тоже нет. А это значит, что схема устройства предельно удешевлена и нацелена на стационарное применение, так как ток потребления у неё в 1.5-3 раза выше, чем требуется для достижения оптимальной продолжительности автономной работы от элемента CR2032. Но что могут предложить конкуренты за те же 80 рублей?
Распиновка модуля XT-ZB1 на обратной стороне платы правильная, в отличие от User Manual http://download.bl602.fun/XT-ZB1_User_Manual.pdf, поэтому пользуйтесь редакцией этого файла, ссылка на которую опубликована выше.
Правильная распиновка модуля XT-ZB1 на чипе BL702C-10:
ЕСТЬ RMII значит можно сетевой модуль приаттачить
Сайт у Buffalo Lab реально кривой, а документацию обновляют как попало и где попало. Да ещё и различные уровни доступа имеются, а также некорректный автовход в гостевой аккаунт.
Если при попытке скачать PDF документ на странице https://dev.bouffalolab.com/document сайт выдаёт "Sorry, the page is not found", то нужно выйти через "logout", который появляется при нажатии "guest" в правом верхнем углу, затем войти снова, нажав "Guest Portal", и перейти в раздел "Document". Ссылки заработают, но все они ведут на обрезанные версии документации, в которых нет разделов "LowPower" и "Power Consumption". Поэтому заходим по адресам без поддиректории "open":
https://dev.bouffalolab.com/media/doc/702/datasheet/en/html/
https://dev.bouffalolab.com/media/doc/702/reference_manual/en/html/
То же самое проделываем со ссылками на PDF документацию. Дополнительно пробуем менять версию документов.
Ethernet подсистема имеется только в чипах BL704 и BL706. В модулях XT-ZB1 и XT-ZB2 установлены чипы BL702С-10-Q2H.
BL706C-10-Q2I можно купить тут: https://lcsc.com/product-detail/C2874060.html
Но у BL706C-10-Q2I корпус имеет аж целых 48 ног, а у BL702С-10-Q2H всего-то 32 ноги, поэтому просто заменить один на другой не получится.
Обсуждение XT-ZB1 (Devkit) на чипе BL702C-10: https://esp8266.ru/forum/threads/xt-zb1-devkit-bl702c.6305/