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

UBIA - USB / BLE to I2C/SMBus Adapter.

pvvx

Активный участник сообщества
USB/BLE to I2C/ADC/DAC


I2C/SMBus:
  • SLC clock 100..2000 kHz.
    SMBus auto-read mode:
  • USB: 20000 transactions per sec
  • BLE: 1250 transactions per sec
    I2C/SMBus host write-read:
  • USB: 500 transactions per sec
  • BLE: 50 transactions per sec
ADC(SAR):
  • 15..16 bits, Ref 1.3V, PGA 0..42.5 dB
  • SNR 73..96 dB (x1 to x8 decimation, 50 ksps to 250 sps)
  • USB: 250..50000 sps
  • BLE: 250..5000 sps
DAC(SDM):
  • 14..15 bits, Out p-p: 0..Vcc, SDM CLK 0.5..16 MHz
  • 2..200000 sps
BLE Power (default config)
  • Disconnect 0.09 mA (800 ms sleep: 17 uA, 5 ms active: TX impulse 33 mA +8dB)
  • Deep-sleep 1.7 / 3 uA (KEY2 - WakeUp KEY2 / KEY1 - Timer 30 sec)
  • Connect (7.5ms..4sec - sleep 17 uA, 3..5 ms active: TX impulse 33 mA +8dB)

Среда разарботки IDE SDK
Программаторы TlsrTools TLSR8269-EVK
 

pvvx

Активный участник сообщества
Универсальная поддержка любых чипов c интерфейсом I2S/SMBUS.

Приложены примеры для BLE связи на WebBluetooth На текущий момент это чипы INA219, INA226, MXL90614, SHT85, BMP280

Примеры тестирования можно посмотреть в теме: BLE модуль JDY-10 на чипе TLSR8266
 

pvvx

Активный участник сообщества
Пример с SHT85:

Общее среднее потребление UBIA с SHT85 от источника в 3.3В:
10 sps -> 1.36 mA
4 sps -> 0.58 mA
2 sps -> 0.32 mA
1 sps -> 0.19 mA
0.5 sps -> 0.12 mA
Disconnect -> 0.09 mA
 

pvvx

Активный участник сообщества
Интересная особенность модуля GY-91 с BMP280.
При подаче питания на модуль GY-91 BMP280 начинает прогреваться:

Тест проведен при вкладывании модуля в картонную коробку для меньшего влияния сквозняка.
BMP280 настроен своими фильтрами на вывод 20 бит по температуре.
Но говорить о точности абсолютных показаний с датчика BMP280 не приходится - включение питания и опрос его нагревает и без учета этого влияния показания на помойку.
Если питание не снимать, то стартовых, более холодных показаний нет и разница нагрева от включения опроса проявляется не так сильно. Сразу получаем от +2 С в зависимости от рассеивания тепла, т.е. конструктива...
 

pvvx

Активный участник сообщества
Другой экземпляр модуля GY-91 с BMP280.
1582096161329.png
Полная идентичность поведения.
 

pvvx

Активный участник сообщества
А вот кто греется:
1582162418962.png
Для теста на графике отображены длины 3D векторов приведенные к единице: G-гироскопа, A-акселерометра, M-магнитометра.
1582163274144.png
Температура тоже от MPU-9250. Смотреть обычные графики 9 осей (x,y,z) - скучно :)
Гравитация качается :), магнитное поле бьет с 50 Гц...

MPU-9250, BMP280 и какой-то стабилизатор на 3.3В установленный на плате GY-91 совместно кушают 3.7 мА при работе...
В ожидании GY-91 - ничего не жрет, т.к. модуль отключает питание (GY-91 запитан от вывода '+Pow/4mA' ) и остывает на не менее 2 С.
 

pvvx

Активный участник сообщества
Если фильтрануть по 1000 точек:
1582163985987.png
Гравитационные волны на акселерометре :) :)
 

pvvx

Активный участник сообщества
UBIA DDS генератор на встроенном DAC и ввод на HX711:
1582256282863.png
И просто весы с тензодатчиком на UBIA:
1582256491450.png
Замер разных предметов (в граммах, тензодатчик на 1 кг)...
Потребление с HX711 (10 sps):
  • HX711 без тензодатчика как ADC -> 1.7 мА
  • HX711 c тензодатчиком 1 кОм -> 3.2V/R -> 1.7+3.2 мА
  • Disconnect -> 0.09 mA
PS: Всё пишется в js в HTML, модуль c UBIA является просто конечным адаптером к своим ADC, DAC, I2C/SMBUS, ....
 

pvvx

Активный участник сообщества
UBIA: BLE - UART troungput (BT4.2)
при half duplex TX-RX и максимальном размере MTU для Telink BLE SDK в 241 байт вышел:
1582905418946.png
Среднее выходит более 5800 байт в сек на RX и на TX канал при half duplex, общий трафик: 11600 байт в сек.
За раз, с вычетом заголовков, для UART передается блок с полезными 232 байтами (что составляет 9 RF пакетов BLE).

Сверим по показаниям счетчика транзакции в сек. Он указывает на средние 24.8 транзакции в сек.
Одна транзакция это передача и прием блока в BLE 232 байтов через UART на модуле с закороченными TX и RX.
Итого по счетчику транзакций 24.8*232*2 = 11507.2 байта в сек, что совпадает и с показаниями среднего по графику и при вводе максимального усреднения в dygraph...
 

pvvx

Активный участник сообщества
В тесте использована настройка на 2 MBaud, чтобы UART не явилась узким горлышком, но всё равно время на передачу отнимает.
11507.2 байта в сек это полные 115200N1 RS-232. Т.е. при одностороннем перекосе передачи 115200 Baud на COM порту может не хватить...
Вполне нормально для данного модуля.
 

sdsm

New member
Проект ubia собирается. Спасибо за большую работу.
Все очень просто:
1. Установил SDK в C:/TELINKSDK
2. Разархивировал ubia master в C:/TELINK
3.Заменил в TlsrMemInfo.py из C:\telink\UBIA-master\TlsrSrc\tl_pvvx_ble_sdk "e:/Telink/SDK" на "C:/TELINKSDK"
4.На всякий случай заменил в C:\telink\UBIA-master\TlsrSrc\my_ble_usb_i2c_adc\.project E:/Telink на С:/Telink
5. При первом открытии Eclipse указал Workspase c:\telink\wk и в меню file->import указал каталог C:\telink\ubia_master
ВСЕ забираем готовый bin для прошивки
Поскольку я стар то делалось все под XP под DOS не пробовал.
 

pvvx

Активный участник сообщества
Проект ubia собирается. Спасибо за большую работу.
Это не проект, а типа типа теста возможностей чипа и собирается/дополняется на ходу. Инструкций у него нет, т.к. идет освоение и в процессе неизбежны переработки ранее налепленных наслоений, но это возможно только после уже освоенного.
Счас занят другим и времени перелапатить, упростить, оптимизировать ненужные наслоения в нем пока нет. А мыслей и вариантов, что надо переработать, накопилось много...
В принципе для этого есть "второй эшелон", типа Ардуинщиков. Пусть и занимаются :)
 

pvvx

Активный участник сообщества
Протестировал такой адаптер:
1586791928797.png
Связывается и работает по BLE хорошо (дрова на автомате в Windows 10).
Troungput c half duplex при блоке 232 байта = 11600 байт в сек (по 5 килобайт на RX и TX).
 

Kabron

Member
Че то с драйвером TlsrTools не в порядке.
Проверено на двух исправных голубых таблетках
 

Вложения

Kabron

Member
Блин, такого еще не было. Задигом установил CDC на интерфейс 1 и девайс опознался.
Но нулевой по прежнему не существует.
 

Kabron

Member
Зашил UBIA в TLSR. BLE Browser работает. Cоединения по USB нет.
Устройство не видится.
Родная паршивка JDY-10-V2.5.bin с USB работает.
Что не так?
 

pvvx

Активный участник сообщества
Зашил UBIA в TLSR. BLE Browser работает. Cоединения по USB нет.
Устройство не видится.
Родная паршивка JDY-10-V2.5.bin с USB работает.
Что не так?
Не переключено на USB (вход USB/BLE на "1").
Автоматического распознавания USB нет, т.к. при режиме BLE эта функция жрет дополнительные десятки мка.
 
Сверху Снизу