UBIA - USB / BLE to I2C/SMBus Adapter.

pvvx

Активный участник сообщества
Но после прошивки BDT перестала работать - пишет на всё "TC32 EVK: Swire err!" и всё. Это может быть связано с UBIA? Резистор на PA7 стоит 1k (если это важно).
Без проблем такое может быть. SWS не активен когда устройство спит. Вам необходимо доработать BDT-EVK - пустить или RST сигнал или ключ питания, как подписано в репе - сигнал "Device_Power_Enable".
И это тоже не всё. BDT-EVK не всегда может соединиться с устройством. К примеру, если включена команда в загрузчике отключения SWS и Flash дана команда Sleep... Пробудив SoC по Reset Flash спит, программа её не активирует, скорость передачи кодов "Активации" (остановки CPU) у BDT-EVK идет с паузами и при старте SoC успевает отключить SWS :)
Пишите в Telink :) или берите в руки бубен и подключайте питание и сам провод SWM-SWS к чипу вручную. Через некоторое время научитесь плясать с BDT-EVK...Так было оф. рекомендовано на их форуме.
 

pvvx

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

aloika

Active member
Уточнить как плясать с бубном с BDT-EVK вы можете у единственного счастливого обладателя реального BDT-EVK. Я им не пользуюсь, только проверял что прошивка пашет.
А вы как посоветуете прошивать - чтобы и быстро, и с минимальными плясками с бубном? вот так?


SWS не активен когда устройство спит.
Когда по ADC данные передает - устройство же явно не спит. И всё равно не работает программирование BDT-EVK. Ресет тыкал вручную, там кнопка на плате есть - бесполезно. Не в те моменты тыкал, наверное. В общем, хочется без плясок.
 

pvvx

Активный участник сообщества
А вы как посоветуете прошивать - чтобы и быстро, и с минимальными плясками с бубном? вот так?
У меня такое сформировалось:
https://esp8266.ru/forum/threads/programmator-dlja-tlsr.4587/post-80168 , т.е. это.
Иногда включаю и программатор на STM32. Он имеет свои фишки, т.к. на TLSR826x скрипт к питону не дописан (попросту мне ныне не нужен из-за доступности серии TLSR825x).
Когда по ADC данные передает - устройство же явно не спит. И всё равно не работает программирование BDT-EVK. Ресет тыкал вручную, там кнопка на плате есть - бесполезно. Не в те моменты тыкал, наверное. В общем, хочется без плясок.
Устройство обычно само просыпается через рекламный интервал. Для связи с ним без доп.проводов необходимо передавать команду останова CPU более чем "рекламный интервал". Это я обычно называю "Activation time".
Для аппаратного сброса ножкой Reset так-же надо учитывать время - в схеме на ней может висеть емкость. Или если от этой ноги включено питание модуля, то нужно подождать пока питание не сядет... Время отпускания в "0" названо "Hard reset time".
Пример:
Код:
usage: TlsrPgm [-h] [-p PORT] [-b BAUD] [-t TRST] [-a ACT] [-s] [-c] [-r] [-g]
               [-m] [-w]
               {rf,we,wf,es,ea,rs,ra,wa,i,ds,df,da,dc} ...

TLSR825x TlsrPgm version 06.01.21

positional arguments:
  {rf,we,wf,es,ea,rs,ra,wa,i,ds,df,da,dc}
                        Run TlsrPgm {command} -h for additional help
    rf                  Read Flash to binary file
    we                  Write file to Flash with sectors erases
    wf                  Write file to Flash without sectors erases
    es                  Erase Region (sectors) of Flash
    ea                  Erase All Flash
    rs                  Read SWire address to binary file
    ra                  Read Analog Registers to binary file
    wa                  Write file to Analog Registers
    i                   External Chip Information
    ds                  Dump Swire (Registers or SRAM)
    df                  Dump Flash
    da                  Dump Analog Registers
    dc                  Chow PC

optional arguments:
  -h, --help            show this help message and exit
  -p PORT, --port PORT  Serial port device (default: COM1)
  -b BAUD, --baud BAUD  UART Baud Rate (default: 230400)
  -t TRST, --trst TRST  Hard Reset Time ms (default: 0 ms)
  -a ACT, --act ACT     Activation Time ms (0-off, default: 0 ms)
  -s, --stopcpu         CPU Stop (before main processing)
  -c, --cpustall        CPU Stall (before main processing)
  -r, --run             CPU Run (post main processing)
  -g, --go              CPU Go (post main processing)
  -m, --mrst            Soft Reset (MCU Reboot) (post main processing)
  -w, --wrktime         Show Worked Time
 

pvvx

Активный участник сообщества
Ресет тыкал вручную, там кнопка на плате есть - бесполезно.
Надо держать reset и отпускать когда уже пошла "Activate".
Если в чипе битая программа - то сразу по активности стоит применить стирание всей Flash - это передача всего в пару байт. Зато потом чип уже не убежит в сон и т.д..

Ещё есть такое - если в чипе включен низкий CLK, то необходимо опустить скорость SWire. Синхронизация по битрейту у Swire работает только в минус N раз.
Всё остальное - это ваши аппаратные недогляды... Что-то слепили не так.
 

aloika

Active member
Получилось подключиться к модулю, но это, действительно, что-то с бубном. Итак, исходное положение: подключаем Vcc, GND, SWS. Нажимаем кнопку SWS в BDT - получаем "TC32 EVK: Swire err!". И так на все кнопки/команды.

Что делать:

1. Отключаем Vcc.
2. Нажимаем "Activate". Получаем "Activate OK!".
3. Снова подключаем Vcc и делаем, что хотели - связь восстановлена.

Шаманство какое-то.
 

aloika

Active member
Собрал PowerProfiler, прошил - работает отлично. И по BLE, и по USB. В .html чуть коэффициенты подправил под cвой экземпляр ina226. Измерил, что хотел. В общем, шикарная вещь. Эх, надо осваивать BLE - идеи есть, а мозгов не хватает.
20210417_135017.jpg
 

r_o_m_k_a

New member
Пробую подключить токовые клещи к дифф. входу АЦП
На выходе токовых клещей напряжение +/- 400 мВ.
При включении питания выбросы до 7 В, любой, случайной полярности.
Один модуль похоже от этого погорел, после этого добавил встречно направленные диоды.
В первом приближении - работает, удалось снять график тока при заводке двух разных автомобилей.
Но, может кто-нибудь посоветует как по правильному организовать оцифровку двуполярного напряжения, амплитудой до 1,5 В.

В webBluetooth сделал пару улучшений под себя.
1. Что-то наподобие триггера. После запуска график сигнала бежит, но когда сигнал превышает заданный уровень, то график добегает до конца экрана и самостоятельно останавливается.
2. при сохранении в csv делаю замену точки на запятую, иначе Excel не воспринимает нормально числа с точкой вместо запятой.
 

Вложения

  • 118.2 KB Просмотры: 9
  • 110.5 KB Просмотры: 11
  • 34.6 KB Просмотры: 12
  • 257.1 KB Просмотры: 12
  • 21.2 KB Просмотры: 10

pvvx

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

Осел есть и на 50 ksps при USB подключении.
Ползунками регулируется точка триггера синхронизации:
 

r_o_m_k_a

New member
По вашей схеме без ограничения к gnd-vcc и следующий вылетит...
да, осознал, спасибо

прочитал, что
"Типичной ошибкой при подключении дифференциального входа к внешним цепям является неподключение цепи AGND или цепи Y. Обратите внимание, что дифференциальный вход при любом подключении требует подключения всех трёх цепей к источнику сигнала: X, Y и AGND!
В частности, между входами X и Y некорректно подключать изолированный источник сигнала, электрический потенциал которого явно не привязан к AGND (это означает, что диапазон синфазного напряжения дифференциального входа ничем не ограничен, поскольку изолированная цепь на своей ёмкости может накопить сколь угодно большое напряжение помехи!). "
источник: https://www.lcard.ru/lexicon/diff_input

возвращаясь к правильному вводу переменного напряжения на АЦП
например, как сделано в DSO201 - насколько это правильно?
отрицательное и положительное напряжение для питания усилителя формируется на RS232-TTL преобразователе SP3232
HC4051 и TL082 переключают усиление и смещают сигнал в положительную область

может есть более современное решение?


за ссылку осциллограф на WebUsb - спасибо
работает шустро, приятно пользоваться
только, пока триггер не сработает не видно что с сигналом происходит, как и в осциллографе в ждущем режиме
в варианте, когда сигнал медленно меняющийся мне показалось удобней видеть как меняется сигнал,
но если он превысит порог, то дочитать точки до конца экрана и остановиться,
срабатывание по триггеру будет в начале экрана, затем всё что после него
запускать дальше надо вручную
ну, это всё "вкусовщина", кому как удобней и привычней
 

Вложения

pvvx

Активный участник сообщества
ну, это всё "вкусовщина", кому как удобней и привычней
Это не "вкусовщина", а пример для дальнейшего допиливания по необходимости под свои условия...
Ну тут не осциллограф, а простейший вывод графиков со встроенного ADC.
С формированием "средней точки" там сложно, т.к. такого выхода у чипа нет и внутренняя не сверх стабильна. Вам может быть достаточно простого делителя напряжения на резисторах с конденсатором (или источник напряжения на половину размаха входа ADC) и возможно включенного к ней ОУ. Его выход и будет "общий" разъема, а у ADC использовать один вход, без всяких диф. При этом на все входы-выходы следует поставить диоды на Vcc и GND схемы.
 

ass20

New member
подскажите про PowerProfiler на jdy-10
после прошивки и перевода в режим usb в компе появляется составное устройство usb_ble_tst подскажите где для него брать драйвер ?
 

pvvx

Активный участник сообщества
спасибо большое!!!!!!!!!!!!!! ни за чтобы не догадался так сделать ...
В чистом старом Windows драйвер сам установится... А в Win10 не так давно была введена новая политика по поводу установки дров - всё перекинули на пользователя, если дрова не проплачены крупным игроком рынка... Так что привыкайте к новым реалиям :)
 
Сверху Снизу