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

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

aloika

Active member
Нашел вероятную ошибку в Bluetooth LE Multi Connection SDK 4.0.1.1. В master connection не устанавливается CONN_INTERVAL более 300 мс (значение 256). По-разному пробовал, безуспешно. В single connection SDK все значения работают. Кроме того, Multi SDK не умеет менять параметры соединения по запросу slave. Ну это-то ладно, мне не критично. А вот частые соединения - это плохо с точки зрения энергосбережения подключенного slave.
 

pvvx

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

pvvx

Активный участник сообщества
USB брелки и прочие BLE на компах и телефонах выходят на соединение с CONN_INTERVAL от 20 до 60. Только после соединения интервал можно изменить...
В атрибутах у устройства есть данные о предпочтительном интервале соединения. Запрашивающий обычно их игнорирует... Так сложилась практика...
 

aloika

Active member
Устройство, инициирующее connect, выходит на соединение со своими параметрами. А уже далее происходит согласование по запросу от отвечающего устройства.
Сейчас мульти-сдк такие запросы не обрабатывает. В руководстве написано, что, может потом, в будущем сделают. В сингл-сдк всё это работает. Как-нибудь задать прямо на слейве, чтобы отвечал пореже, тоже не получилось (идея была поставить latency на мастере побольше, а слейвом отвечать пореже). Так, похоже, нельзя.
 

pvvx

Активный участник сообщества
@aloika А с Zigbee есть какие успехи?
 

aloika

Active member
В Bluetooth LE Multi Connection SDK 4.0.1.1. также не работает шифрование прошивки (то, что в app_config называется FIRMWARES_SIGNATURE_ENABLE). Даже либы такой нет в комплекте. Попробовал взять либу от сингл SDK - не, не получается, не стартует прошивка.
А в обычной (single conn) SDK этот функционал работает.

Кстати. Во всех руководствах к SDK написано, что каналы ADC надо включать по очереди, что MISC канал должен работать не одновременно с LEFT и RIGHT. Такое вот ограничение. Хотя в datasheet'е никаких ограничений на это - нет. Я попробовал одновременно их запустить - и относительно несложно всё получилось. Могу поделиться, если интересно кому.

Эх, китайский форум по TLSR совсем дохлый. Задал там вопрос про CONN_INTERVAL - всё глухо, никакой реакции.
 

Simon

Member
2. Замыкаем проводом с коннектором папа-мама
ногу с номером 2 CH340C и SWS:
Посмотреть вложение 11337
Подскажите, пожалуйста, как это работает. Получается, мы замыкаем SWS на TX (от PC) или на RX у TSLR. И все. Это не совпадает с вашими схемами программаторов UART/SWS.

Или в этом случае SWS используется только как триггер запуска загрузчика для прошивки по UART?
 

aloika

Active member
Эх, китайский форум по TLSR совсем дохлый. Задал там вопрос про CONN_INTERVAL - всё глухо, никакой реакции.
Ответили:

1. In version 4.0.1.1, the master role support a maximum connection interval of 320ms.
2. You can register the event 'GAP_EVT_MASK_L2CAP_CONN_PARAM_UPDATE_REQ'. If slave conn param update req occur, then respond in app_host_event_callback().
 

pvvx

Активный участник сообщества
Подскажите, пожалуйста, как это работает. Получается, мы замыкаем SWS на TX (от PC) или на RX у TSLR. И все. Это не совпадает с вашими схемами программаторов UART/SWS.

Или в этом случае SWS используется только как триггер запуска загрузчика для прошивки по UART?
После сброса все GPIO настроены как входы и TX и RX, активен только SWS.
1. Пока процессор не очнулся после сброса, USB-UART на TX по протоколу Telink Swire передает код остановки CPU на SWS pin.
2. Далее USB-UART на TX по протоколу Telink Swire через pin SWS передает загрузчик-программатор и запускает его.
3. Код загрузчика-программатора включает UART на MCU и далее связь c USB-UART идет по TX-RX.
 

pvvx

Активный участник сообщества
SWS pin - двунаправленный - и вход и выход. Для разрешения конфликта на TX включен токоограничивающий резистор. Прием-детектирование протокола Telink Swire на RX USB-UART возможен не всеми адаптерами.... В Git указано какие проверены...
 

aloika

Active member
Неожиданно вылезла проблема - среда стала компилировать не каждый раз. выдает ошибку:

m.AllocationBase 0x0, m.BaseAddress 0x60E90000, m.RegionSize 0x1A0000, m.State 0x10000
C:\TelinkSDK\bin\sh.exe: *** Couldn't reserve space for cygwin's heap (0x60E90000 <0x2680000>) in child, Win32 error 0
make: *** [boot/8253/cstartup_8253_RET_16K.o] Error 1

Ошибка может меняться - разные файлы и т.д., но остается этот "Couldn't reserve space for cygwin's heap"
Что это? Как с этим бороться?
 

aloika

Active member
А иногда такое вылезает:

Building file: ../vendor/SWBD_Remote/remote.c
0 [main] sh 7888 open_stackdumpfile: Dumping stack trace to sh.exe.stackdump
make: *** [vendor/SWBD_Remote/remote.o] Error 5


Файл может быть любой. Теперь, чтобы откомпилировать, приходится жать кнопку компиляции последовательно 4-5 раз. Каждый раз он компилирует следующий кусок и вылетает с одной из этих ошибок. С пятого-шестого подхода компилирует всё.
 

aloika

Active member
Неожиданно вылезла проблема - среда стала компилировать не каждый раз. выдает ошибку:

m.AllocationBase 0x0, m.BaseAddress 0x60E90000, m.RegionSize 0x1A0000, m.State 0x10000
C:\TelinkSDK\bin\sh.exe: *** Couldn't reserve space for cygwin's heap (0x60E90000 <0x2680000>) in child, Win32 error 0
make: *** [boot/8253/cstartup_8253_RET_16K.o] Error 1

Ошибка может меняться - разные файлы и т.д., но остается этот "Couldn't reserve space for cygwin's heap"
Что это? Как с этим бороться?
Более-менее разобрался с этим.

Суть беды описана здесь. Но решения там нет, мне ничего не помогло.

Я делал так:

1. Ставим cygwin64
2. Переименовываем C:/TelinkSDK/bin в C:/TelinkSDK/bin1, например.
3. Копируем папку bin из комплекта cygwin64 в C:/TelinkSDK/ (т.е. заменяем штутную папку bin на новую, от cygwin64)
4. Запускаем компиляцию, будут ошибки "не найдена dll такая-то". Из сохраненной bin1 копируем в новую подменную bin нужные dll.
 

pvvx

Активный участник сообщества
Файл может быть любой. Теперь, чтобы откомпилировать, приходится жать кнопку компиляции последовательно 4-5 раз. Каждый раз он компилирует следующий кусок и вылетает с одной из этих ошибок. С пятого-шестого подхода компилирует всё.
Компиляция в многопотоке (с опцией -jn )?
 

aloika

Active member
Более-менее разобрался с этим.

Суть беды описана здесь. Но решения там нет, мне ничего не помогло.

Я делал так:

1. Ставим cygwin64
2. Переименовываем C:/TelinkSDK/bin в C:/TelinkSDK/bin1, например.
3. Копируем папку bin из комплекта cygwin64 в C:/TelinkSDK/ (т.е. заменяем штутную папку bin на новую, от cygwin64)
4. Запускаем компиляцию, будут ошибки "не найдена dll такая-то". Из сохраненной bin1 копируем в новую подменную bin нужные dll.
Это решило проблему (не знаю, надолго ли).
 

UrikEEE

New member
Доброго дня всем! Приехали ко мне модули TB-03F (2шт) и TB-03F-KIT (1шт), которые я заказал для ознакомления работы с ними.
На плате модуля TB-03F-KIT по центру вижу белую микросхемку из 6-ти ног, по виду напоминающую (RGB?) светодиод. Также в 1-м посту этой ветки есть ссылка на TB-04-KIT, где среди китайских иероглифов есть еще и схема этого модуля. На которой как раз есть RGB-светодиод на 6 пинов. А есть ли схема на TB-03F-KIT? Я гуглил и ничего пока не нашел, похоже, тут надо начинать изучать китайский))
 

pvvx

Активный участник сообщества
Также в 1-м посту этой ветки есть ссылка
И так-же там ссылка на все доки DOCs: https://docs.ai-thinker.com/blue_tooth
Среди которых:
похоже, тут надо начинать изучать китайский))
Не похоже, а уже давно основным техническим языком стал китайским. Когда-то, ещё пол столетия назад - был немецкий... потом обгрызанный английский и т.д :p
 

UrikEEE

New member
Да, действительно, есть там ссылка на модуль TB-03-kit. Спасибо! Я бегло открывал ту ссылку, но как увидел в начале сплошные иероглифы, сразу закрыл.

И еще вопрос дилетанта в программировании TLSR - с какой среды разработки лучше начать эксперименты с этими модулями? Домашний комп на Win10. Думал сначала скачать Eclipse с сайта Telink, но (по ссылке из 1-го поста) еще увидел здесь Window开发环境搭建 . Там опять слишком много иероглифов, но, насколько я понял, там можно тоже скачать среду разработки (написанную на питоне?). Но как-то стремно мне пока видеть много иероглифов.
 
Сверху Снизу