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

UBIA - USB / BLE to I2C/SMBus Adapter.

pvvx

Активный участник сообщества
Значит что-то не то или не так собрали

Вот тут засада
C:
// ds3231.h

inline int ds3231_init() {
    //I2CBusInit(400);
    return I2CBusWriteWord(DEV_I2C_ADDR, 0x0e, 0x0088);
}
Если открыть комментарий все виснет. Если не запускать I2CBusInit устройство видно но при чтении 0xFFE1 выдает все нули.
 

pvvx

Активный участник сообщества
Вот тут засада
...
Если открыть комментарий все виснет. Если не запускать I2CBusInit устройство видно но при чтении 0xFFE1 выдает все нули.
Значит у вас что-то не то на I2C. Я в этом проекте включил 'clock stretching'.
BM_SET(reg_i2c_mode, FLD_I2C_MODE_MASTER | FLD_I2C_HOLD_MASTER); // enable master mode, clock stretching
И оно ждет когда-же на шине I2С SCL появится "1"....
А если адрес не верен - просто выйдет по ошибке и будут читаться все нули и подобное, как принято в Arduino.
 

pvvx

Активный участник сообщества
"Подтяжки" на SCL и SDA чип сам включает, т.е. они не обязательны.
Зачем вы засадили SCL на GND?
 
Зачем вы засадили SCL на GND
Пошевелил провода вроде запустилась. (y)

ps: в проекте sdk tl_pvvx_ble_sdk постоянно возникает ошибка

fatal error: app_config.h: No such file or directory register.h /tl_pvvx_ble_sdk/proj/mcu line 25 C/C++ Problem

Добавить пустой файл или закомментировать ссылку на него в хидере?
 
если закомментировать вот что еще валится


Код:
'CLOCK_SYS_CLOCK_HZ' undeclared here (not in a function)    clock.h    /tl_pvvx_ble_sdk/proj/mcu    line 72    C/C++ Problem
'RF_RX_USE_DMA_IRQ' undeclared (first use in this function)    dma.h    /tl_pvvx_ble_sdk/proj/mcu    line 29    C/C++ Problem
'RF_TX_USE_DMA_IRQ' undeclared (first use in this function)    dma.h    /tl_pvvx_ble_sdk/proj/mcu    line 29    C/C++ Problem
 

pvvx

Активный участник сообщества
ps: в проекте sdk tl_pvvx_ble_sdk постоянно возникает ошибка
fatal error: app_config.h: No such file or directory register.h /tl_pvvx_ble_sdk/proj/mcu line 25 C/C++ Problem
Он находится в папке workspace "ds3231\include\app_config.h "
Путь к нему добавлен в настройках. Зачем настройки проекта сбили?
1616096242074.png
Если это сбито, то вероятно вы неправильно загрузили всё.
Нужно делать import, а не копировать директории в workspace:
1616096666661.png1616096674020.png
 

Alexey_77

New member
Доброго времени суток. Разбирался прошивкой JDY-10 через USB-COM CP2102.
Выяснил, что нельзя подсоединять RTS -> Reset, так как при открытии порта происходит установка RTS в 0 на 2 мсек и сбрасывает TLSR8266.
floader.bin(Uartfloader) после загрузки в модуль не отвечает, а USBfloader вполне работает(только драйвера сами не ставятся, поставил от ST).После запустил прошивку уже на новом порту и она прошилась(зашивал JDY10BLESmartSniffer.bin, новое устройство появилось, но криво. В USBView видно, а в диспетчере устройств нет).
Может кому-то поможет.
 

Alexey_77

New member
Добавлю.
После подключения свистка на CC2540 стал виден и перешитый JDY-10.
Заработал.
Пакеты показывает.
Всё делал на Вин8.1 х64.
 

pvvx

Активный участник сообщества
Выяснил, что нельзя подсоединять RTS -> Reset, так как при открытии порта происходит установка RTS в 0 на 2 мсек и сбрасывает TLSR8266.
На то есть установки COM порта в системе windows по default. Но работает это дело криво - пишите в Microsoft :)
 

pvvx

Активный участник сообщества
В USB-COM при открытии так-же посылаются сигналы управления DTR линией и т.д.
pyserial вообще не имеет понятия о том, что у UART бывают ошибки при приеме символов и многое другое...
 

aloika

Active member
Всем привет. Решил тоже поиграть в BLE. Залил UBIA в E104-BT05, модуль на фирменной отладочной платке от EBYTE. Вроде как залилось, запускается. Но - работает несколько секунд и отключается (перезагружается?). Что в NFRconnect связь пропадает, что в веб (termUart). Штатная прошивка этой платки работала стабильно. Что может быть? Куда смотреть?
 

aloika

Active member
Кстати, как уже тут писали, действительно BDT с подключенным по USB принтером не работает. Принтер приходится отключать. Как-то неудобненько.
 

pvvx

Активный участник сообщества
Всем привет. Решил тоже поиграть в BLE. Залил UBIA в E104-BT05, модуль на фирменной отладочной платке от EBYTE. Вроде как залилось, запускается. Но - работает несколько секунд и отключается (перезагружается?). Что в NFRconnect связь пропадает, что в веб (termUart). Штатная прошивка этой платки работала стабильно. Что может быть? Куда смотреть?
В UBIA встроен таймер - если вы ничего не передаете на устройство в течении некоторого времени, то оно закрывает это никчемное соединение и переходит в более щадящий режим по питанию - рекламный.
 

pvvx

Активный участник сообщества
А вот testADC работает долго, не отпадает. Хм...
А там стоит "пинг" - раз в 20 секунд или типа запрашивает у устройства "статистику". Устройство при наличии запроса к нему видит, что поток с ADC передается не в пустую, неизвестно кому и там не все ещё померли, и сбрасывает таймер разрыва соединения.
 

pvvx

Активный участник сообщества
А в начале соединения ещё жестче - если запрошающий за несколько секунд не может согласовать настройки соединения - то его посылают ...
Типа если не обучен правилам BLE - иди учись :)
Так-же если запрошающий не включит "notify", а тупо ждет данных от командного интерфейса- тоже пусть гуляет.
 

aloika

Active member
Еще такой вопрос. Прошивал я с помощью "самодельного" EVK согласно вашей методике. E104-BT10-G тоже распаян на фирменной отладочной платке, с которой я сдул CH340G и подключил модуль напрямую к USB. Так вот - сначала всё вроде заработало - память читает, прошивку заливает. Так я UBIA прошил в E104-BT05. Но после прошивки BDT перестала работать - пишет на всё "TC32 EVK: Swire err!" и всё. Это может быть связано с UBIA? Резистор на PA7 стоит 1k (если это важно).
 
Сверху Снизу