• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

BLE модули TB-04 (TLSR8251)

pvvx

Активный участник сообщества
вчера прислали новую версию BDT.
Хотел выложить здесь, но форум пишет ,что файл слишком большой.
Оно работает со моей прошивкой к модулю E104-BT10-G/N. Проверял на днях...
Да и BDT слишком тормозная и ничего не умеет.
 

pvvx

Активный участник сообщества
Благодарю.
Вчера получил термометры TLSR8253 .
Теперь можно издеваться над ними.
Этих "термометров" Xiaomi с TLRS8251 уже пачка. Оригинальные прошивки тоже доступны, дизасм в гидре - не всем :)
 

pvvx

Активный участник сообщества
И куда это очередное дерьмо от ST девать?
1x USB 2.0 full-speed, т.е. у ST ещё сентябрь 1998 года с USB1.1 ! :) :)
Ничего нужного на камнях STM32L5 нет, а что есть - всё убогое - от ST :)
Интересно - они когда дойдут до FIFO к UART или другим контроллерам?

И вы зря смотрите на рекламу тока потребления у данных чипов - пока они загрузят RTOS и супер HAL от ST - батарейка уже сядет.
Тем более ничего вдающегося в показаниях отключенного MCU не наблюдается. Эти нормы у всех уже лет пять...
 

pvvx

Активный участник сообщества
Пересмотрел ещё раз серию L5 .
Включение любого кварца измеряется в mA :) Живите от RC :p
Ток рабочих генераторов кварцев серии STM32L5 превышает аналогичные параметры у TSL825x.
Стартовый ток выхода из любого sleep - так-же значительно выше.
STM32L5 не может хранить всю память в deep-sleep, а в простом sleep режиме жрут уже в несколько раз более чем TSL825x в аналогичной моде.

По аппаратной скорости выхода из sleep вообще давно никого не удивить - даже INA226/INA219 не может показать даже пичёк на цикле входа-выхода из таких режимов. Аналогично и у RTL872x, да и остальные параметры STM схожи.

Но не забывайте о могучем HAL у STM - через него MCU ногами шевелит до 10 MHz в лучшем случае при сильной оптимизации кода вручную, а что будет при просыпании и инициализации через HAL всех потрохов чипа?
Это всё в тысячи раз более аппаратных задержек. Что-то оптимизировать на STM32 никто уже никогда не будет.
В итоге оно не может работать от CR2032.
 

nikolz

Well-known member
Пересмотрел ещё раз серию L5 .
Включение любого кварца измеряется в mA :) Живите от RC :p
Ток рабочих генераторов кварцев серии STM32L5 превышает аналогичные параметры у TSL825x.
Стартовый ток выхода из любого sleep - так-же значительно выше.
STM32L5 не может хранить всю память в deep-sleep, а в простом sleep режиме жрут уже в несколько раз более чем TSL825x в аналогичной моде.

По аппаратной скорости выхода из sleep вообще давно никого не удивить - даже INA226/INA219 не может показать даже пичёк на цикле входа-выхода из таких режимов. Аналогично и у RTL872x, да и остальные параметры STM схожи.

Но не забывайте о могучем HAL у STM - через него MCU ногами шевелит до 10 MHz в лучшем случае при сильной оптимизации кода вручную, а что будет при просыпании и инициализации через HAL всех потрохов чипа?
Это всё в тысячи раз более аппаратных задержек. Что-то оптимизировать на STM32 никто уже никогда не будет.
В итоге оно не может работать от CR2032.
Я не оцениваю качество решений. просто принимаю к сведению кто, что и чего достиг.
К стати, TLSR сделали режим командной строки для программирования через EVK,USB и OTA.
Теперь можно вставлять его в eclipse.
 

pvvx

Активный участник сообщества
Я не оцениваю качество решений. просто принимаю к сведению кто, что и чего достиг.
Долго вы с этим разбираетесь. Более чем на пятилетку отстаете...

К стати, TLSR сделали режим командной строки для программирования через EVK,USB и OTA.
Теперь можно вставлять его в eclipse.
У Ai-Thinker это изначально и без покупки специального программатора.
Прям как у меня уже год назад.
Потихоньку адаптируются :)
Не вижу в этом никаких достижений, т.к. даже эксплорер Chrome может работать с COM-портом из HTML/jscript.
Но на практике python удобнее - кросс платформенней и гибче.

ps: Программирование "термометра" и у atc1441 в OTA производится из эксплорера через любой набортный BT или USB свисток или через USB-COM скриптом питона.
 

pvvx

Активный участник сообщества
К стати, TLSR сделали
...
Так и не сделали оптимизации размера прошивки ("firmware.bin") в скрипте линковщику к новым сериям чипов - пришлось сразу дорабатывать.
Написали кое-как Telink_IDE, исключив даже возможность менять имя скрипта линковщику :) - полный детсад.
Доработки скриптов сборки дают возможность запихать всю прошивку примера типа термометра от Xiaomi с экраном в официально объявленную SRAM TLSR8251 в 32 кило.
Программерам Telink ещё работать и работать... А их маркетингу - тем более.
 

pvvx

Активный участник сообщества
Ущё - у модулей TB-0x вроде есть вывод SWM, но чипы TLSR85x в примененных корпусах не имеют выводов USB от кристалла.
Вот полноценный программатор и отладчик через SWire с прикрученным адаптером USB-COM (TB-04-KIT):
1605829546127.png
И его ПО пишется за рабочий день (по моим наработкам), но нужды в нем нет, т.к. у меня уже есть в наличии под рукой другие варианты более скоростного одночипового решения с USB.
 

nikolz

Well-known member
Долго вы с этим разбираетесь. Более чем на пятилетку отстаете...
Я вообще всю жизнь только этим и занимаюсь - изучаю то, что мне интересно.
Например, за последние полгода разработал технологию переработки нефтешламов,
в которой пять патентов.
 

pvvx

Активный участник сообщества
Ущё - у модулей TB-0x вроде есть вывод SWM, но чипы TLSR85x в примененных корпусах не имеют выводов USB от кристалла.
Вот полноценный программатор и отладчик через SWire с прикрученным адаптером USB-COM (TB-04-KIT):
Посмотреть вложение 10165
И его ПО пишется за рабочий день (по моим наработкам), но нужды в нем нет, т.к. у меня уже есть в наличии под рукой другие варианты более скоростного одночипового решения с USB.
Программатор с доп.функциями на данную платку (или собрать самому TB-03/04 + USB-COM) уже давно накалякал и пользуюсь (у меня подключен к тестовому Xiaomi LYWSD03MMC):
Там есть и без доп. микрухи USB-COM, на TLST8269 (EBYTE E104-BT10-G/N) напрямую с USB.
 

aloika

Active member
Продолжаю потихоньку ковырять этот модуль. Выяснилось такой не очень понятный момент. Везде написано, что состояние подтягивающих резисторов у GPIO сохраняется при deep sleep with retention. Я включаю резистор 10 k pull-up, и после ухода в deep sleep и просыпания - ну да, подтяжка есть, осталась. НО: в течение где-то 3-4 мс в процессе засыпания/просыпания подтяжка пропадает (?), на это ножке появляется ноль и внешний девайс, подключенный к этой ноге, сбрасывается. Кто-нибудь что-нибудь может сказать по этому поводу?

При suspend состояние сохраняется (как и должно).
 

aloika

Active member
Продолжаю потихоньку ковырять этот модуль. Выяснилось такой не очень понятный момент. Везде написано, что состояние подтягивающих резисторов у GPIO сохраняется при deep sleep with retention. Я включаю резистор 10 k pull-up, и после ухода в deep sleep и просыпания - ну да, подтяжка есть, осталась. НО: в течение где-то 3-4 мс в процессе засыпания/просыпания подтяжка пропадает (?), на это ножке появляется ноль и внешний девайс, подключенный к этой ноге, сбрасывается. Кто-нибудь что-нибудь может сказать по этому поводу?

При suspend состояние сохраняется (как и должно).
А, нет. Это не подтяжка пропадает, это на ноге в процессе "уход в deep sleep with ret / просыпание (переинициализация)" появляется ноль. Т.е. нога притягивается к нулю на 3-4 мс. Я припаял внешнюю подтяжку 10 k на эту ножку - то же поведение, появляется там ноль. Ну я тут в своем случае выкрутился, обошел это дело, но все равно интересно бы выяснить. У кого какие идеи?
 

aloika

Active member
А, нет. Это не подтяжка пропадает, это на ноге в процессе "уход в deep sleep with ret / просыпание (переинициализация)" появляется ноль. Т.е. нога притягивается к нулю на 3-4 мс. Я припаял внешнюю подтяжку 10 k на эту ножку - то же поведение, появляется там ноль. Ну я тут в своем случае выкрутился, обошел это дело, но все равно интересно бы выяснить. У кого какие идеи?
Продолжаю свой диалог :) С retention тоже непонятно. Ставлю 16K retention, все работает как ожидается. Добавляю в retention массив 864 байта - перестает влезать. Ага, думаю, наверное, превысили 16К (хотя вообще откуда там 16 К получается? моих данных около 2 К всего). Включаю 32K retention (все по инструкции) - компилируется, заливается. Но - часть переменных не сохраняется, как будто blc_pm_setDeepsleepRetentionType(DEEPSLEEP_MODE_RET_SRAM_LOW32K) не выполняется. По факту эта строчка вообще не влияет :(

Непонятно, как вообще подходить к отладке таких штук, куда смотреть.

Кстати, попробовал webOTA от pvvx (html-страничка), с ее помощью заливается в TB-03, но стартует старая прошивка почему-то. Надо разбираться.
 

aloika

Active member
Продолжаю свой диалог :) С retention тоже непонятно. Ставлю 16K retention, все работает как ожидается. Добавляю в retention массив 864 байта - перестает влезать. Ага, думаю, наверное, превысили 16К (хотя вообще откуда там 16 К получается? моих данных около 2 К всего). Включаю 32K retention (все по инструкции) - компилируется, заливается. Но - часть переменных не сохраняется, как будто blc_pm_setDeepsleepRetentionType(DEEPSLEEP_MODE_RET_SRAM_LOW32K) не выполняется. По факту эта строчка вообще не влияет :(

Непонятно, как вообще подходить к отладке таких штук, куда смотреть.

Кстати, попробовал webOTA от pvvx (html-страничка), с ее помощью заливается в TB-03, но стартует старая прошивка почему-то. Надо разбираться.
С ретеншеном 32 К какие-то непонятности. Добавил еще 1000 байт в ретеншн (просто массив объявил в коде) - все заработало, все используемые переменные сохраняются. Этот массив, кстати, не знаю, сохраняется или нет. Убираю этот массив - часть моих переменных не сохраняется.
 

aloika

Active member
Кстати, попробовал webOTA от pvvx (html-страничка), с ее помощью заливается в TB-03, но стартует старая прошивка почему-то. Надо разбираться.
С этим понятно. Веб-страничка файл не перечитывает при каждой записи, нужно страничку перезагружать и файл снова открывать.
 

pvvx

Активный участник сообщества
Продолжаю потихоньку ковырять этот модуль. Выяснилось такой не очень понятный момент. Везде написано, что состояние подтягивающих резисторов у GPIO сохраняется при deep sleep with retention. Я включаю резистор 10 k pull-up, и после ухода в deep sleep и просыпания - ну да, подтяжка есть, осталась. НО: в течение где-то 3-4 мс в процессе засыпания/просыпания подтяжка пропадает (?), на это ножке появляется ноль и внешний девайс, подключенный к этой ноге, сбрасывается. Кто-нибудь что-нибудь может сказать по этому поводу?

При suspend состояние сохраняется (как и должно).
Есть другой косяк, в виде наносекундного импульса в "0" на портах при "просыпании" чипа:
 

aloika

Active member
Что еще обнаружил: при изменении значения rf_set_power_level_index() даже от самых маленьких до самых больших уровней потребляемый ток не меняется - как был около 10-12 мА в момент радиосвязи, так и остается. Смотрю PowerProfiler'ом.
 

aloika

Active member
Что еще обнаружил: при изменении значения rf_set_power_level_index() даже от самых маленьких до самых больших уровней потребляемый ток не меняется - как был около 10-12 мА в момент радиосвязи, так и остается. Смотрю PowerProfiler'ом.
Уровень сигнала рекламы тоже незаметно, чтобы менялся (смотрю программкой на телефоне). Что же получается - функция ничего не делает или я ошибаюсь в наблюдениях? Кто-нибудь проверял?
 
Сверху Снизу