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

Обмен между двумя модулями по BLE

pvvx

Активный участник сообщества
Аналогия - это ACK в I2C или USB.
В USB и BLE вы заполняете буфер передачи, а мастер считывает и подтверждает прием. И если далее не успели подготовить следующий блок для передачи, до подтверждения мастером прошлого, то ждите следующий опрос мастера через типовой интервал.
И если постоянно не успеваете, то в итоге в USB2.0FS будет 64 килобайта максимум (64 байта фрейм и 1 мс строб-опрос мастера) , вместо 800 килобайт в сек.
Для RF части задаются все параметры и данные, включая все тайм-ауты и запускается функция rx-tx (или tx-rx).
И только после совершения полной транзакции идет разбор что там принялось и передалось с ожидаем следующего периода связи.
Это типовой алго в BLE рекламе и при соединении. А над этим уже всякие стеки BLE, WiFi, ...
 

pvvx

Активный участник сообщества
Вот ESP32 нифига не успевает подтверждать передачу и производить прием в BLE соединении. В итоге slave вынужден постоянно дублировать цикл передачи десятками раз, оставаясь без подтверждения и полностью высаживает батарейку....
Со связкой ESP-nRF24 аналогичная фигня.
 

pvvx

Активный участник сообщества
Новую функцию "быстрого connect" или PAwR из спецификации BT5.4 на TLSR825x и TLSR8266 вы использовать не сможете, т.к. SDK ограничено старой версией - есть только часть функций из BT5.2.
Новые придется писать самому на основе функций RF rt-tx/tx-rx :p
Или брать более новые чипы Telink на Risc-V - там новые SDK. Это чистый маркетинг у всех. включая Telink, чтобы вы покупали новые чипы, на которые всегда идет больше наценка, но аппаратная часть необязательно лучше и не обязательно имеет новые фичи...
Для чипов уже имеющих спецификацию BT5.0 ничего не требуется для реализации BT5.0..,BT5.4+, кроме функций AoD и AoA. Для них RF должна более точно давать уровень приема - лучше вычислять уровень АРУ.
Но это не относится к некоторым производителям, у которых спецификация у чипа о поддержки BT5.0 чисто рекламная - там обычно отсутствует многое - реализован только BT4.2 и увеличен размер буфера RF...
 

nikolz

Well-known member
pvvx,
вопрос по прошивке UBIA
--------------
если включить одновременно USB_CDC и BLE,
то USB_CDC не работает (нет в диспетчере устройств на ПК)
без BLE работает.
Так задумано?
 

pvvx

Активный участник сообщества
Так было задумано - применил разные настройки частот и т.д. для разных конфигов и для USB нет режимов сна - там чипу спать некогда
Но USB может без проблем работать с BLE.
 

nikolz

Well-known member
Сделал.
Первый модуль работает в режиме реклама на 1-ом канале.
Второй модуль сканирует только этот модуль.
Интервал посылок в среднем 8 ms, но примерно через 10 посылок интервал бывает 15 ms.
Для моей задачи вполне приемлемо.
Получилась частота дискретизации не менее 60 Гц.
 

nikolz

Well-known member
Удалось настроить на интервал не более 10 ms(100 Гц), что и требовалось.
 
Сверху Снизу