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