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

Power Profiler

скачал готовую прошивку для STM, прошил, соединил ina3221 и STM32F103C8T6.
открыл PowerProfiler022.exe
там пустота...
что там надо сделать кроме соединения с com портом?
Снимок экрана 2023-01-05 200237.jpg
 
да я уже понял после прочтения этой темы, JDY-10 в пути еще долго, попробовать хотел.
 
ага, попробовал, видит мою ИНУ, только работать с ней не хочет))
кнопки config reg и read regs читают, а запись, я так понимаю не идет.
при нажатии start CMM - ошибка записи, потом и читать перестает, помогает только выдергивание usb
Снимок экрана 2023-01-06 171913.jpg
 

pvvx

Активный участник сообщества
На это могут влиять резисторы подтяжки на шине I2C.
CLK используется 1MHz, в пределе для STM32 (уже не документированное) и может заваливать фронты...
 

pvvx

Активный участник сообщества
Так сегодня проверял, без калибровки...
1673035508200.png
1673035208282.png
 

pvvx

Активный участник сообщества
Кто подскажет, какой диф.ОУ можно прикрутить на шунт 0.001..10 Ом, чтобы у него шумы не превышали разрядность хотя-бы 20 бит ADC
окно работы было от малого минуса до +24В
полоса будет ограничена до 10..20 кГц
цена не более самого ADC.

А то у TI сплошная халтура...

К примеру ADC7176 с BL702 дает такие характеристики при 65 кsps 24 бит:
1673036194215.png1673036200970.png
(И это всё пока на соплях, как в предыдущем фото)
т.е. конкретно по даташиту со своими Ref, и понятно что при понижении sps уже к 8 ksps там болтаются уже последние пару бит... т.е. за -156 дБ.
И усилителю с шунта надо выйти на уровень шума от измеряемого источника питания... А это. если не золотое, то 20 бит макс.
 

pvvx

Активный участник сообщества
Да, забыл - Усиление ОУ надоть 50..200. (вокруг 40дБ)
(это специальная задачка на сообразительность, а то развелось много грамотных, вышедших "погулять")
 

pvvx

Активный участник сообщества
ага, попробовал, видит мою ИНУ, только работать с ней не хочет))
кнопки config reg и read regs читают, а запись, я так понимаю не идет.
при нажатии start CMM - ошибка записи, потом и читать перестает, помогает только выдергивание usb
Тут попробовал всё перенести на BL702.
У него немного странный контроллер I2C. Не позволяет управлять сигналами как угодно - работает по схеме smbus.
Для INAxxx годится, но не для всех извращений c i2с.
В общем поймал такую-же ситуацию, как описываете и ещё другие "фичи". При подключении щупов дешевого осла на шину на больших скороcтях CLK проявляется описываемая беда. Это всего до десятки пФ, но если добавить резисторы, то работает.
Так-же у INAxxx есть фичи. Они якобы могут работать к 3MHz I2C, но если переключили фильтры шины. А про переключение TI доки гласят:

Когда шина простаивает, линии SDA и SCL подтягиваются подтягивающими резисторами к высокому уровню. Мастер генерирует условие запуска, за которым следует допустимый последовательный байт с высокоскоростным (Hs) мастер-кодом 00001XXX. Эта передача осуществляется в быстром (400 кГц) или стандартном (100 кГц) (F/S) режиме на частоте не более 400 кГц. INAxxx не подтверждает мастер-код Hs, но распознает его и переключает свои внутренние фильтры для поддержки работы на частоте 2,44 МГц.
Затем мастер генерирует условие повторного запуска (условие повторного запуска имеет то же время, что и условие запуска). После этого условия повторного запуска протокол такой же, как и в режиме F/S, за исключением того, что разрешены скорости передачи до 2,44 МГц. Вместо использования условия остановки ведущий использует повторяющиеся условия запуска для защиты шины в режиме Hs. Условие останова завершает режим Hs и переключает все внутренние фильтры INAxxx на поддержку режима F/S.


Но какой смысл лепить перед каждым запросом 00001XXX на низкой скорости, если в итоге время всей транзакции-запроса не изменится. TI - тут больше нечего сказать...

А в реальности чип имеет такую фичу - после подачи питания, если первые запросы i2c идут на низкой скорости, то последующее повышение частоты шины невозможно. Т.е. стартовать надо сразу на высокой частоте шины и тогда всё ok.
И все чипы INAxxx зависучие, имеют состояния из которых их не вывести, кроме как передергивания питания.
 

pvvx

Активный участник сообщества
На BL702 реализуется вариант опроса I2C по прерыванию таймера без ожидания готовности i2c, за счет FIFO в контроллере. Т.е. в прерывании таймера считываются данные прошлого опроса всей транзакции i2c из FIFO и запускается новый цикл опроса i2c без каких либо ожиданий и CPU свободен. Да и CPU там шурует на 172 МНz по умолчанию.

Ну и сам BL702 значительно пошустрее всяких STM32 cо своей периферией, в том числе с USB2.0FS – в CDC выдает 1 Мегабайт в сек в одну сторону. А для тестов и простейшей сборки с INAxxx платки RV-Debugger от Sipeed очень хорошо подходят, да чип стоит менее любого STM. Программируются по USB. По этому простой PowerProfiler наверно переедет на них...
Что-то более конкретное будет когда придет партия INA228/229. А пока они в долгом пути...
 
Я так и не смог победить. Так же зависает, резисторы подтяжки менял, разницы нет.
Едут jdy и INA ещё одна, жду)) будет время свободное - ещё раз с самого начала попробую.
 

pvvx

Активный участник сообщества
Я так и не смог победить. Так же зависает, резисторы подтяжки менял, разницы нет.
Едут jdy и INA ещё одна, жду)) будет время свободное - ещё раз с самого начала попробую.
JDY-10 программировать хитро...
И желательно в чип запрограммировать установки - кнопка "Store CFG".
А какая плата с INA3221? И USB порт.
 

pvvx

Активный участник сообщества
BL702 успешно пашет с INA3221 на I2C c частотой 2.2MHz, но требуются резисторы подтяжки на 4k7 (на плате 10к и добавил 7k5), в основном из-за емкости щупов осла и китайских железных проводков с разъемчиками.
1673300442995.png
Можно частоту больше, но следующий шаг (2.6 MHz) выбора частоты шины i2c у BL702 убегает за максимальный возможный у INA3221 (2.44 MHz).
 

pvvx

Активный участник сообщества
Джиттер +-13 ns, между считываниями регистров INAxxx с периодом 140 us при работе USB c выводом потока этих значений:
1673303017436.png
Clock stretching тоже включен.
STM32F103C8 умер полностью.
 

pvvx

Активный участник сообщества
Вот рисую, чтобы кинуть на github...
1673324046873.png
Дольше, чем писать софт...
 

pvvx

Активный участник сообщества
Воткнул INA229. Очередная смешная микросхема от TI.
Вычислял, вычислял сколько там получится шума на 50 us замерах (20кГц дискретизация) и запутался.
Пример шума при 50 us (1 единица = 0x138 значений по шкале передаваемых чипом 20 бит):
1673880845563.png
Такой смешной шаг у ADC от TI в INA229.
В итоге - прыгает 1 бит в + и в -. При этом этот один бит есть шаг в 0x138 единиц в 20 заявленных TI битах в рекламе к чипу, и скромно в табличке, что при 50 us будет 10.4 ENOB без шума.
У меня не выходит, а иногда и выходит 10.7 если считать по разному...
И если запихать замер в Cool2000, то он показывает такой спектр шума:
1673881090806.png
Где-то близко, но что-то совсем не то... и пока не разобраться кто халтурит. Скорее всего TI :)
 

pvvx

Активный участник сообщества
Но итог таков - INA3221 и INA226 на предельной скорости (163 us замер) лучше этого INA228/229. Первая на 1.3 бита, а вторая на все 2. Отличие только в токе утечки входов - у INA228/229 это пикоАмперы, а у других микро. Но это калибруется табличкой, если существенно (зависит от сопротивления шунта и требуемого диапазона измерений).
Короче INA228/229 сильно хуже любого среднего ADC от AD с простейшим ИУ (хотя-бы древним AD8220). TI = позорище.
 
Сверху Снизу