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

BLE модули TB-04/TB-03F (TLSR8253F512)

pvvx

Активный участник сообщества
u8 mcuBootAddrGet(void);//0: boot from 0, 1: boot from 0x40000
А оно врет, во всяком случае в проверенных других SDK.
Пришлось лепить своё, и не всё там так просто...
И в разных SDK - разный размер OTA, и разные адреса загрузки и очистки области для OTA (запуск очистки обычно по холодному старту).
В итоге залить OTA из BLE в ZigBee и прочие, отличающиеся по адресам варианты - выходит дичайший глюк...
 

pvvx

Активный участник сообщества
При загрузке OTA для 128 кило в вариант с 128+ кило или обратно, необходимо перенести и область с MAC и коррекцией емкостей кварца, да стереть области "сопряжения", стереть/подготовить область под новую OTA.
Автоматом, т.е. имеющимися кодами либ OTA это не делается.
Приходится писать немерено кода, да с учетом что он работает при активновном соединении - т.е. не должен запрещать доступ к flash на более пару мс. и то, по показаниям диспетчера времени BLE или кто-там работает.
В доках по SDK есть специальный раздел, где это описано и есть доп. функции. Иначе происходит потеря соединения. А время стирания/записи сектора уже в несколько раз превышает допустимые задержки...
В итоге пришлось лепить гору доп. кода для MJWSD05MMC, т.к. там оригинальная прошивка больше 128 кило и всё сдвинуто как в ZigBee.
 

pvvx

Активный участник сообщества
А оно врет, во всяком случае в проверенных других SDK.
Врет в зависимости от расположения запроса - до вызова функции стирания облаcти OTA или после. И во всех случаях, когда загружен OTA с другой разметкой.
А знать где ныне старт необходимо до запуска функции стирания облаcти OTA (она с частичной проверкой - есть ли 0xFFFFFFFF в началах секторов), в начале инициализации. Иначе она там натрет - затрет стартовый код :)
и запуск будет одноразовым, без возможности соединения и прочие глюки...
 

Slacky

Member
В итоге залить OTA из BLE в ZigBee и прочие, отличающиеся по адресам варианты - выходит дичайший глюк...
Да я пока на OTA не замахивась, знаний моих вряд ли хватит. Но сделать на будущее, чтобы потом не переписывать, это я могу :)

В общем нашел адрес, куда можно промежуточный конфиг записывать, если залил прошивку по OTA. Первый сегмент для *.bin равен 0x34000, а второй - 0x36000. Получается, что не желательно делать прошивку больше 0x34000. Ну вот с адреса 0x74000 есть 0x2000, которые можно использовать ...

Как-то так.

Еще не нашел, где определяется период просыпания. Скомпилил sampleSwitch. Модуль сам как-то просыпается через примерно пару секунд. А как задать период больше-меньше не нашел ...
 

Slacky

Member
А вот еще глупый вопрос. У телинка на сайте из 825х zigbee присутствует только в 8258. Но я залил прошивку в TB-04 (где 8253) и все работает.

Я это к чему, не нашёл недорогую devboard на 8258. Может плохо искал?
 

pvvx

Активный участник сообщества
Дешевых TLSR8258 не встречал. Почему-то распространены ущемленные по выводам чипы, но кристалл у всех один.
 

selevo

Member
Я не понял, А что контора некоторые sdk бесплатно не раздаёт? Я хотел получить сборку для клавиатуры плюс мышки А тут они мне предлагают написать им письмо😀
 

pvvx

Активный участник сообщества
Я не понял, А что контора некоторые sdk бесплатно не раздаёт? Я хотел получить сборку для клавиатуры плюс мышки А тут они мне предлагают написать им письмо😀
Да вроде бесплатно, но требуют подписать NDA. А вы решили выпускать мышки под их проприетарные протоколы?
 

selevo

Member
Да вроде бесплатно, но требуют подписать NDA. А вы решили выпускать мышки под их проприетарные протоколы?
У меня есть мышка на 24 кнопки мне не очень нравится как она работает с её фирменным программном обеспечением.
Хочу переделать
 

selevo

Member
А в стандартном sdk есть примеры таких Комбо устройств? У меня не будет в ближайшее время возможности посмотреть всё это дело на компьютере но хочу подготовиться уже сейчас что меня ждёт. И вообще что надо будет сделать, Какие подготовительные провести работы.
 

selevo

Member
Скачал архив посмотрел по названиям...Hid ble там есть но hid compisite не увидел
 

pvvx

Активный участник сообщества
Скачал архив посмотрел по названиям...Hid ble там есть но hid compisite не увидел
Т.е. так сложно описать структуры USB HID, если BLE?
И при чем тут "hid compisite" ?
Игровые мышки работают на проприетарных (закрытых) протоколах. Иначе как обеспечить опрос в 1000..2000 Гц?
 

pvvx

Активный участник сообщества
Connection interval в BLE - минимум 7.5 мс.
 

nikolz

Well-known member
Не по теме, но спрошу.
Есть ли приемо-передатчики на 2.4 ГГц с управляемой полосой приемника,
кроме чипов Lora
и новее , чем NRF24 ?
 

pvvx

Активный участник сообщества
TLSR825x. В режиме ESB шаг каналов до 50 MHz или менее. 3 типа модуляции.
 

selevo

Member
Т.е. так сложно описать структуры USB HID, если BLE?
И при чем тут "hid compisite" ?
Игровые мышки работают на проприетарных (закрытых) протоколах. Иначе как обеспечить опрос в 1000..2000 Гц?
Вообще ничего про это не знаю, про описание структур. А мышку я использую для работы с текстом.
Поэтому на кнопки повешены всякие шаблоны текста, текущая дата текущее время и комбинации клавиш связанные с рутинными операциями и работой в системе
 

pvvx

Активный участник сообщества
и новее , чем NRF24 ?
Буфер TX/RX вроде на полтора кило (как для IP фрейма MTU 1500). Полу-аппартаные процедуры типа rf_start_srx2tx()/rf_start_stx2rx() с установкой задержек есть в практически каждом SDK.
Дешифрация самого фрейма и выполнение задержек приема-передачи полу-аппаратная. ACCESS_CODE выбираете сами...
 

pvvx

Активный участник сообщества
Вообще ничего про это не знаю, про описание структур. А мышку я использую для работы с текстом.
Поэтому на кнопки повешены всякие шаблоны текста, текущая дата текущее время и комбинации клавиш связанные с рутинными операциями и работой в системе
Значит вам изучать всё связанное с BLE ещё пару лет, включая как оптимально работать с MCU и прочие фишки...
 

pvvx

Активный участник сообщества
Все протоколы, включая передачу BLE рекламы используют rf_start_stx2rx(). Передача, установленная пауза в n мкс, прием с таймаутом (типично до 500 мкс), кол-во повторов-ретрансляций если не было приема... Т.е. вся транзакция при фрейме в дцать байт при 2M PHY может уложиться в половину мс. Т.е. 2000 транзакций в сек.
В BLE при соединении тоже можно создать непрерывный поток передачи-подтверждений, полностью заняв канал. Там те-же таймауты и при передаче с большим MTU 'connection interval' будет занят полностью. Но тогда у адаптера не будет возможности работать с другим устройством и не все типовые адаптеры на такое способны из-за тормозов системы, дров и узкой шины USB2.0FS...
USB2.0FS - это опрос USB `точек` мастером с шагом 1 мс и на хламе до 4 пакетов по 64 байта в данный период после запроса с подтверждениями...
 
Сверху Снизу