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

UBIA - USB / BLE to I2C/SMBus Adapter.

По поводу собрать проект в VSС
Судя по описанию он пользуется code как текстовым редактором (ну как нотепадом) , а сборку осуществляет в терминале (ну типа как в открытом рядом командном окошке). это немножко не то(слабо сказано)
 

jura_lcd

New member
Там , для сборки с другого SDK, нужно make файлы подправить/изменить по аналогии.
Если есть желание можете попробовать, коллективным разумом поможем.:)
 

jura_lcd

New member
Там сборка идет запуском:
export PATH=$PATH:/opt/tc32/bin
tc32-elf-gcc -v

make
Ну так нам никто не мешает добавить скрипт для сборки.
 
Приехал mpu9250 Попробовал подключить к UBIA. Не пашут примеры, говорят "Device not start" в консоли куча попыток отправки Send command#01: Init I2C/SMBUS CLK 400 kHz, MPU9250 Reset... с последующим disconnect
Никаких хитростей в подключении нет? Я просто подсоединил их друг к другу 4 проводами и подал 3.3 вольта от CH340G
В приложении фото пайки, платки склеены между собой толстым скотчем для зеркал
 

Вложения

pvvx

Активный участник сообщества
Ну и конечно сильно не хватает в вашей прошивке возможности подключится к прерыванию(-ям) датчика с выводом сообщения в ble при его срабатывании. Например у того же ds3231 есть будильники, по срабатыванию которых выставляется в "1" вывод INT на чипе. Хотелось бы припаять его куда нибудь к TLS и по появлению нужного сигнала выплевывать Notify.
Это не сложно - надо всего добавить вызов в прерывание установки флага отправки Notify. Флага - по причине что отправлять чип может только синхронно с установками connection interval и c согласованием клиента...
Но такой метод не подходит для BLE. CPU должен спать, а по прерыванию от пина или таймера просыпаться и создавать цикл оповещения состоящий из некой последовательности маяков-реклам... Это уже ближе к MESH (или ZigBee), но работает и на классическом BLE...
 

pvvx

Активный участник сообщества
Приехал mpu9250 Попробовал подключить к UBIA. Не пашут примеры, говорят "Device not start" в консоли куча попыток отправки Send command#01: Init I2C/SMBUS CLK 400 kHz, MPU9250 Reset... с последующим disconnect
Никаких хитростей в подключении нет? Я просто подсоединил их друг к другу 4 проводами и подал 3.3 вольта от CH340G
В приложении фото пайки, платки склеены между собой толстым скотчем для зеркал
Может не хватать питания - на плате какой-то стабилизатор.
Обычно, с данной тестовой прошивкой, у чипов I2C питание подключаю к выводу GPIO PD5 (+Pow/4mA) и при соединении на чип подается питание, а при deep-sleep снимается, что гарантирует минимальное потребление в независимости наличия у чипа с I2C режимов sleep.

Я подключал платки с али GY-91. Они с MPU9250 и BMP280 и там может что-то отличаться...
 

pvvx

Активный участник сообщества
Google на вопрос что там может быть говорит:
MPU-9250 can have two slave addresses depending on the logic level on pin AD0 of the sensor. If AD0 is low, the I2C address is {'0x68','0x0C'}. If AD0 is high, the I2C address is {'0x69','0x0C'}.
 
Вдумчивое тестирование показало что датчик не видится и в прожке для esp которая выводит все устройства на I2c шине. Дохлый чтоли?
 
Уф! Добрался наконец до проекта. Я не сбежал, :) за это время успел собрать и оттестировать пару прототипов на jd-10 плюс mpu9250. bmi160 из робошопа не завелись, похоже они там перемаркированные (адреса на шине i2c не соответствуют ну и примеры не работают, да и 0 регистр читается но не содержит ID кода чипа).

Выяснил что распространенные USB-COM программаторы на CH340G без микросхемки стабилизатора не подходят для JDY-10 , так как у них на всех логических выводах 5 вольт. USB-COM на CP2102 работает как часы. CH340g в теории умеет работать от 3.3вольт, позже попробую припаять к нему 117

Пытаюсь откомпилировать ваш пример прошивки с часиками.
1) Импортировал ble_sdk
2) Импортировал ваш пример
3) Компилирую... падает так как не может найти ble.h
4) Прописываю папку include в include
5) Теперь падает так как не может найти tl_common.h
6) Прописываю в include папку ble_sdk/proj
7) Все равно падает по ошибке. Что то еще нужно сделать?

sshot-1.png
 

A_D

Active member
Да дохлый если прижать пальцем главную микруху - на короткое время на шине появлется устройство с адресом 68. Попробовал прогреть феном - вообще перестало появляться. Вопрос снят.
Может быть дело в резисторах подтяжки (банально, резистор бракованный с трещиной или непропаем), когда пальцем прижимали - подтянули к питанию как бы линии scl, sda.
 

A_D

Active member
это я первым попробовал. подпаял пару резисторов по 10ком. не помогло.
Хм, а перемычку рядом с ldo ставили? (если плату от 3.3в питаете) И да, а скорость i2c какая? (если под 1мгц, может быть 10к много, попробовать поставить подтяжки 4.7...2.2к)
 
Проверить и уточнить, что проект содержит Linked Resources c указанием на tl_pvvx_ble_sdk.
Скомпилировал и прошил в контроллер(в проекте был два дублирующих app.с файла, в папке source и в корне под именем main.c Я main.c в корне стер, а на его место положил app.c ).
Чем смотреть сообщения с чипа? В телефоне поиск не находит никаких устройств, по WebBluetooth в списке тоже никого нет.
 
Сверху Снизу