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

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

К примеру, сложный алгоритм приложения без прохождения по шагам не отладить.
Мне в сложных случаях помогает отлаживаться вот такая копеечная приблуда. Подключил пару тройку входов к свободным GPIO чипа и дергаешь их из кода в интересующие моменты. В отличии от print работают быстрее и позволяют отслеживать "фазу" и последовательность событий.
 

pecherskih

Member
Мне в сложных случаях помогает отлаживаться вот такая копеечная приблуда. Подключил пару тройку входов к свободным GPIO чипа и дергаешь их из кода в интересующие моменты. В отличии от print работают быстрее и позволяют отслеживать "фазу" и последовательность событий.
Использовал такую для анализа SPI протокола на незнакомом устройстве
 

pvvx

Активный участник сообщества
В BLE со стороны пользователя нет никаких сложных алгоритмов. Тем более для TLSR825x - в них не используется RTOS и все задачи-действия должны выполняться динамически и за микросекунды.
В итоге алгоритм разбивается на короткие и простейшие стадии. А ошибки в таких структурах возникают только в динамике. Пошаговое выполнение невозможно, т.к. нарушит коммуникацию BLE или работу с датчиком. Как итог - отладка возможна исключительно динамическим выводом сообщений-логов, не нарушая время выполнения.
 

pecherskih

Member
В BLE со стороны пользователя нет никаких сложных алгоритмов.
В общем согласен. Берешь пример из SDK и допиливаешь его под свои задачи. А вот с этим дополнительным софтом приходится трудно без отладки. Особенно если логика работы не простая. Вот тут TeLink и проигрывает. На днях запустил Debuging на CH582M. Ну это небо и земля. Раньше в Keil-е отлаживал nRF52832, сейчас в Эклипсе CH582M. Кейл по мне так был проще, но возможно это дело привычки. Пишу это не для таких зубров как pvvx, им и так хорошо. Пишу для тех, кто только начинает работу с BLE на китайских камнях. Не агитирую, просто в качестве информации. А там решайте сами. Если будете покупать на Али, имейте ввиду, на последней отладочной плате не выведен раз]ем программирования, поэтому заливать прошивку можно только через USB-Boot, для отладки она не пойдет. Удачи всем в освоении китайсого BLE.
 

Вложения

  • 701.9 KB Просмотры: 11
  • 474.2 KB Просмотры: 12
  • 234.1 KB Просмотры: 13
  • 213.4 KB Просмотры: 10

pvvx

Активный участник сообщества
@pecherskih - вы вводите людей в свои заблуждения в своей статье (!):
И вот тут мы сталкиваемся с первой проблемой. Не все примеры удастся скомпилировать. Я потратил немало времени, что бы разобраться почему так происходит. Оказалось всё просто. В мануале к этому SDK в главе 16 Q&A , описывается причина и способ её обойти. В двух словах, для некоторых проектов не хватает выделенной оперативной памяти. Что бы кристалл мало потреблял, не всю память включают при инициализации. Каким то проектам хватает и 16к, а другим нужно 32к оперативки. И у меня вопрос - почему бы не включить сразу 32к памяти?

По тому что не у всех SoC TLSR82xx заявлено наличие сохраняемой в deep-sleep памяти и указаны разные общие объемы памяти. По PDF TLSR8258/8253/8251 различаются и по применению - Zigbee только у TLSR8258, т.к. у него якобы самый большой объем SRAM.
Хотя практика показала, то все TLSR825x чипы имеют идентичный кристалл и никаких различий кроме кол-ва выведенных на корпус ножек не имеют.
Видимо было дешевле произвести один кристалл и кидать в разные корпуса, чем делать несколько с усечениями.
 

pvvx

Активный участник сообщества
А далее идет вообще какой-то бред аля "общества потребления":
На первом этапе изучения, потребление не так важно, гораздо важнее рабочие примеры. Как мы увидим далее, это не самый большой косяк у TeLink-а.
Главная специализация BLE - низкое потребление - он для этого и разрабатывался. Telink разрабатывал чипы и ПО согласно этой специализации, а не как контроллер общего применения.
А в таких применениях и во всех новых отладка с остановом не проходит и давно заменена на динамическую, типа RTT (Real Time Transfer).
Этим вы показываете свою некомпетентность в современном мире электроники. Т.е. вам пора на покой и писать мемуары о STM32F103. :)
 

pecherskih

Member
А далее идет вообще какой-то бред аля "общества потребления":
На первом этапе изучения, потребление не так важно, гораздо важнее рабочие примеры. Как мы увидим далее, это не самый большой косяк у TeLink-а.
Главная специализация BLE - низкое потребление - он для этого и разрабатывался. Telink разрабатывал чипы и ПО согласно этой специализации, а не как контроллер общего применения.
А в таких применениях и во всех новых отладка с остановом не проходит и давно заменена на динамическую, типа RTT (Real Time Transfer).
Этим вы показываете свою некомпетентность в современном мире электроники. Т.е. вам пора на покой и писать мемуары о STM32F103. :)
Я не буду спорить, в деле нахамить собеседнику, мне до вас далеко. Да я и не стремлюсь к этому :) Объясню лишь свою позицию. Когда я заявлял о том, что потребление на первом этапе не важно, я не имел ввиду, что оно не важно совсем. При вхождении в тему BLE на первом этапе очень полезно бывает ознакомиться с ядром самого контроллера. Походить пошагово в примерах, посмотреть как происходит общая инициализация. На счет компетентности, ну как вам сказать. Век живи - век учись. Вот я и учусь и другим стараюсь помогать в меру сил, кстати как и Вы, только без хамства. На покой уходить - мысль интересная. Честно говоря, ваши наезды вызывают у меня только улыбку, у меня была хорошая школа в виде моей тещи. И вам до неё далеко :) (пожалуйста без обид, ок?) И да, я не боюсь показать своё лицо на аватарке, интересно почему Вы скрываетесь за телевизионной таблицей настройки? Комплекс какой то или что то ещё?
 

pvvx

Активный участник сообщества
Походить пошагово в примерах, посмотреть как происходит общая инициализация.
1) По шагам в примерах не походить. Работа BLE будет прервана.
2) Исходников библиотек нет. Смотреть незнакомый ассемблер блобов либ как начинающему, так и специалисту нет смысла.

Вы застряли в детстве, в игре в любимые кубики и тянете это на всех.
Комплекс какой то или что то ещё?
Что-то другое. Многократно описывал.
 
По шагам в примерах не походить. Работа BLE будет прервана.
Кстати о прерывании BLE... Означает ли подобная "прерывистость" невозможность создания моста из 433Mhz в BLE ? Ведь пока контроллер занят BLE или спит он не может слушать эфир ожидая входящие по 433Mhz команды?

Сейчас как раз задумался над карманной коробочкой транслирующей сигнал с "тревожных" кнопок в телефон. Стационарные девайсы на ESP32 (работающие по WifI) я уже сделал и испытал, настала пора носимых девайсов...
 

pvvx

Активный участник сообщества
Кстати о прерывании BLE... Означает ли подобная "прерывистость" невозможность создания моста из 433Mhz в BLE ? Ведь пока контроллер занят BLE или спит он не может слушать эфир ожидая входящие по 433Mhz команды?
Обработка BLE достаточно короткая. Загрузка по производительности может происходить во время соединения, при больших объемах передачи.
В остальных случаях, типа "спит", всегда доступны прерывания для пробуждения и обработки команды.
При "сне" контролера BLE необходимо так рассчитывать протоколы и алгоритмы связи, чтобы был предусмотрен тай-маут после подачи сигнала запроса на просыпание SoC или его занятость.
Типичное время выхода из сна у TLSR825x - 1..1.5 мс. Время полного цикла передачи рекламы по трем каналам - около 2 мс.
 

pvvx

Активный участник сообщества
Сейчас как раз задумался над карманной коробочкой транслирующей сигнал с "тревожных" кнопок в телефон. Стационарные девайсы на ESP32 (работающие по WifI) я уже сделал и испытал, настала пора носимых девайсов...
И как там с WiFi? Если использован какой режим экономии, то там всё гораздо хуже, а сам реальный интерфейс sta<->ap<->"иная сеть" достаточно часто имеют "провалы" связи в секунды...
Плюс из опыта эксплуатации десятка "умных розеток" - потеря ответа/соединения наблюдается у любой и каждый десяток часов. Не отрабатывают соединения TCP/IP. Типы SoC в них разные. Треть на ESP8266, но разных производителей под общим интерфейсом от Tuya. В подтверждение могу скинуть массу мегабайтных логов из HA и конфигурацию сети. Все используемые WiFi роутеры не дешевые и считающиеся самым качественными. При этом ни один из других типов устройств соединенных с ними по WiFi не имеет ни одного сбоя за год тестирования. Получается, что все проблемы в ужасной реализации тупого сокета или дров WiFi станции в малых SoC.
 
Местами плохое, но можно подгадать с местом установки. Сами аппаратные кнопки на 433Mhz фигачат метров на 50 сквозь стенки и потолки.

достаточно часто имеют "провалы" связи в секунды...
Секунды не страшно, это для логов в основном нужно. А с потерей посылок борюсь их многократным повторением. Сама библиотека (RCSwitch) их 15 раз повторяет, плюс я пару раз через интервал. Ну и логика задачи помогает. Там система такая: кнопку нажали - через некоторое время должно следовать нажатие отбоя. Думаю поставить "умные" ретрансляторы 433Mhz (хоть ардуинки обычные) которые ловят факт нажатия и если через пару минут нет отбоя повторно самостоятельно выдающих дополнительное нажатие. Ну и равномерно раскидать ретрансляторы по площади.

Со всем этим нормально справляются и стационарные ESP32. Но хотелось бы еще иметь носимый приборчик позволяющий "в поле" нажать-отжать любую кнопку совмещенный со снифером эфира 433Mhz. На эту роль как мне кажется вполне подошел бы сабжевый TLSR82xx Надо только библиотеку протокола 433 попроще найти и импортировать под него.
 

pvvx

Активный участник сообщества
Но хотелось бы еще иметь носимый приборчик позволяющий "в поле" нажать-отжать любую кнопку совмещенный со снифером эфира 433Mhz.
И без батарейки?

Telink слепил TLSR8273-M-EH модуль с интегрированным Energy Harvester.
Тянет питание от 280mV 15uW, общий диапазон источника 0V-4.5V.
 
И без батарейки?
С батарейкой конечно. лежит в кармане коробочка от тик-така, слушает эфир 433Mhz на предмет появления команд и ретранслирует их в BLE. Дальше в ход идет смартфон, который улавливает эти комнады и выводит на экран. Ну и наборот, смартфон по BLE выдает команду для коробочки, она переправляет ее в эфир для приемников 433.

Используемый мной приемник SRX882 в принципе довольно маложрущий, вкупе с TB-04 зарядки должно хватать надолго.

Telink слепил TLSR8273-M-EH модуль с интегрированным Energy Harvester.
На Али его что-то пока не видно ;)
 

pvvx

Активный участник сообщества
Используемый мной приемник SRX882 в принципе довольно маложрущий, вкупе с TB-04 зарядки должно хватать надолго.
SRX882 - 2.8 мА по PDF.
TB-04 без sleep - к 5 мА (зависит от выбранной частоты CPU).
В итоге - дофига. АКБ-ище 70 000 мА/ч на год :) Типовой АКБ для авто на 70A/ч в "коробочка от тик-така ".
 
В итоге - дофига.
Он не должен работать непрерывно. Включили, проконтролировали ситуацию (послали команду), - выключили. Даже при самой пиковой нагрузке, он будет работать не более трех часов в сутки. Так что вполне можно ограничится аккумулятором на 70 мA/ч или даже вообще cr2032.

ps: Можно в теории извернуться и вовсе запихать девайс в термометр, выводя команды на экран :) А к самому термометру приделать ремешок и на руку на манер часов.
 

pvvx

Активный участник сообщества
можно ограничится аккумулятором на 70 мA/ч или даже вообще cr2032.
CR2032 может не вытянуть ток передатчика 433MHz - передача то не пару мс... При нагрузке в 15 мА провал напряжения уже более 0.5В, а если ещё подсевший....
Вам бы желательно взять какой EFR или nRF - у них лучше организован режим sleep, когда CPU пробуждается по прерыванию. Для типовых схем BLE это не особо нужная вещь, но в данном случае возможно сократить потребление при ожидании приема по 433MHz. Но опять-же - всё зависит от приемника 433MHz - если он сам не декодирует символы, а постоянно гонит весь шум - ничего хорошего не выйдет.
 
Вам бы желательно взять какой EFR или nRF - у них лучше организован режим sleep, когда CPU пробуждается по прерыванию.
Например?
если он сам не декодирует символы, а постоянно гонит весь шум - ничего хорошего не выйдет.
Вроде лекодирует. по крайней мере в покое на выходе ноль, а при нажатии кнопки - несколько повторений посылок.
 
Сверху Снизу