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

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

UrikEEE

New member
Давно сюда не заглядывал, но тут возникла потребность все-таки начать разбираться с модулем TB-03F, соединенным с платой TB-03F KIT согласно TLSR SWire programmer

Увидел на странице TLSRPGM новую опцию sws и ссылку на пример sws_printf, решил попробовать. Записал в модуль TB-03F через "программатор" (плату TB-03F KIT, куда изначально залил прошивку) сначала загрузчик "floader.bin" по адресу 0X40000 (хотя не уверен, что это надо было делать), а затем и бинарник "sws_print.bin" из примера. Записать удалось только на скорости 230400, которая установлена дефолтом в утилите "TlsrPgm.py". Пытался ставить там скорости выше (500000, 921600) - но там сразу выдавалась ошибка "Error[102] Set pin RST/Power!" при запуске утилиты. Комп с win10, com-порт на CH340.

А когда после загрузки в модуль бинарника с примером ""sws printf" запускаю утилиту с параметром i, то в консольное окно прилетают сообщения (с интервалом примерно полсекунды), но не те, что я вижу в файле app.c примера.

При этом в консольном окне "русским по белому" указаны разные скорости com-порта COM8 (230400) и Swire bit rate 0.9600:
1771933595808.png

@pvvx Подскажите, плиз, как подружить скорости com-порта для платы TB-03F KIT с битрейтом swire? Или я туплю где-то и причина "кракозябр" в получаемых по sw сообщениям в чем-то еще?

По идее, эти сообщения должна принимать из модуля и затем пересылать в com-порт прошивка в программаторе, но (повторюсь) утилита "TlsrPgm.py" на моем компе работает с COM-портом только на скорости 230400 почему-то (ниже не пробовал, а выше точно не работает).
 

UrikEEE

New member
Поправка небольшая к предыдущему посту: пример "sws printf" записал в модуль по адресу 0X00000 и затем запускал утилитой "TlsrPgm.py" с параметром "sws 0", а не "i" (это на скриншоте видно).
 

pvvx

Активный участник сообщества
Код:
> TlsrPgm.py sws -h
usage: TlsrPgm sws [-h] address

positional arguments:
  address     SRAM address, (Ctrl-C - exit)

options:
  -h, --help  show this help message and exit
Для данного примера адрес “sws_buffer” = 0x0840b64.
TlsrPgm.py -pCOMx sws 0x0840b64
 

pvvx

Активный участник сообщества
По идее, эти сообщения должна принимать из модуля и затем пересылать в com-порт прошивка в программаторе, но (повторюсь) утилита "TlsrPgm.py" на моем компе работает с COM-портом только на скорости 230400 почему-то (ниже не пробовал, а выше точно не работает).
Установите правильный драйвер "USB-SERIAL CH340".
У меня такая версия:
1771956163163.png
 

UrikEEE

New member
Для данного примера адрес “sws_buffer” = 0x0840b64.
Спасибо, получилось!
1772002537986.png
Пока только на битрейте com-порта 230400. Драйвер для CH340 также обновил до версии 3.9.2024.9, но TlsrPgm.py на битрейтах выше 230400 выдает ошибки. Пока не критично.

Теперь буду знать, что для аргумента sws надо указывать адрес переменной sws_buffer в RAM. Смотреть этот адрес либо в lst-файле, либо жестко привязать к фиксированному адресу __attribute__((at(address))) - увидел ваш комментарий в файле sws_printf.h
 

pvvx

Активный участник сообщества
Пока только на битрейте com-порта 230400. Драйвер для CH340 также обновил до версии 3.9.2024.9, но TlsrPgm.py на битрейтах выше 230400 выдает ошибки. Пока не критично.
Надо решать такие проблемы.
Оптимально там -b1500000.
Попробуйте включить через какой USB хаб - это иногда решает аппаратные проблемы USB компа.
Или перепроверьте установку pyserial: pip install pyserial
 

shaman1010

Member
TlsrPgm.py на битрейтах выше 230400 выдает ошибки.
У меня было несколько железок с подобными симптомами (на TB-03F). Решилось перепайкой чипов CH340C на какой-то перемарк с гордой надписью FTDI (коим тот чип не являлся, но прикинулся ftdi-ем и все полетело). Возможно какую-то партию выпускали с забракованными CH340C.
 

nikolz

Well-known member
pvvx,
Можете подсказать есть ли какой-либо пример решения такой задачи на BLE.
Надо, чтобы модуль BLE слушал эфир с определенной периодичностью.
Когда в эфире появляется конкретный маяк, то модуль должен вывести сигнал на какой-нибудь пин.
Модуль должен работать лишь как приемник.
 

pvvx

Активный участник сообщества
Можете подсказать есть ли какой-либо пример решения такой задачи на BLE.
Надо, чтобы модуль BLE слушал эфир с определенной периодичностью.
Когда в эфире появляется конкретный маяк, то модуль должен вывести сигнал на какой-нибудь пин.
Модуль должен работать лишь как приемник.
Такого простейшего примера нет.
Есть ретранслятор принятых маков в Zigbee с обработкой,
Есть типовой гигрометр с передачей маяка и приемом ответного маяка в ограниченный период в 7 мс,
Есть типовой гигрометр с приемом маяка от указного гигрометра и с синхронизацией к этому маяку для получения итогового потребления до 20 мкА + ретрансляция принятых данных и отображение на дисплее,
Есть приемник всех типов маяков (включая LE Long Range) с выводом в UART с черным и белым списком,
Есть приемник маяков с обработкой и ретрансляцией в BLE соединение,
Есть ещё какие-то навороты с приемом маяков, но уже лень указывать ссылки...
Ничего сложного в включении приема маяков в TLSR чипах нет - достаточно примеров из SDK.
 
Сверху Снизу