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

Power Profiler

Так через stm и не заработало, хорошо jdy пришла быстро.
JDY-10 программировать хитро...
Да вроде не сложно, по вашим инструкциям на github справился, прошил через stm готовым файлом.

Заработало сразу! Погонял, посмотрел, не виснет. Интересно! Спасибо за труды! Потенциал у программы большой, пройду дальше изучать возможности))
IMG_20230118_094109_725.jpg
 
IMG_20230118_203259_755.jpg
К INA ничего не подключено. Питание INA виновато или шунт надо больше ставить чтобы мкА увидеть?
 

pvvx

Активный участник сообщества
К INA ничего не подключено. Питание INA виновато или шунт надо больше ставить чтобы мкА увидеть?
0.04 мА -> 40 мкА. Это +-1 единица ADC INA3221. Обычный шум, скорее всего от использованных источников питания.
Разрядность у INA3221 всего 12 бит 0.04*2^12=163.84 мА максимальная шкала если настроено под примененный шунт.
 
Что-то я запутался, глупо наверное, почему 40мкА шаг? Там же шунт 0.1Ом, 0.04мВ/100мОм=0.4мА же? Что я упускаю?
 

pvvx

Активный участник сообщества
Что-то я запутался, глупо наверное, почему 40мкА шаг? Там же шунт 0.1Ом, 0.04мВ/100мОм=0.4мА же? Что я упускаю?
То, что коэффициенты под ваши шунты не настроены:
1674219168791.png
Они устанавливаются на каждый канал (Channel).
Для настройки нуля есть кнопки "Copy Us/Is to Uz/Iz":
1. После установки коэф. множителя, значение offset ставите в 0.
2. Запускаете измерение без подключения нагрузки.
3. Жмете кнопку "Copy Us/Is to Uz/Iz" и значение среднего измерения переноситься в I/U offset.


На графике у вас шкала в мА. А один шаг ADC INA с вашими коэф. выходит 0.04 мА, что есть 40 мкА.
В итоге полная шкала ADC 0.04*2pow12=163.84 мА.
 

pvvx

Активный участник сообщества
Если вы верите в свои номиналы резисторов шунтов, резисторов фильтра на входах INA3221, тогда коэф. по току вычисляется так:
Полная шкала -32768..+32760 единиц, что для INA3221 будет –163.84 163.8 mV на шунте. Младший разряд INA3221 - это шаг в 8 единиц в 16 битах, т.к. значение 12 бит INA3221 сдвинуто влево на 3 бита.
В итоге Ikoef для одного бита в шкале из 16 бит для шунта в 0.1 Ом = 163.8 мВ * 0.1 Ом / 32760 = 0.0005
А у меня установлены по 1 Ом и это дает минимальную чувствительность (один бит шага ADC) у INA3221 в 40 мкА
При 0.1 Ом один шаг INA3221 будет 400 мкА.
 

pvvx

Активный участник сообщества
Да, я там ошибся, т.к. надо делить не а не умножать на сопротивление :) Но ничего разберетесь, что для шутна 0.1 Ом Ik= 0.05 (163.8 мВ / 0.1 Ом / 32760 ).
При большом шунте, или даже при 0.1 Ом, в зависимости от напряжения на шунте у INA3221 изменяется ток утечки входа.
1674223173440.png
Поэтому нолик будет ездить, в зависимости от напряжения:
1674223008386.png
Это на 0.1 Ом.
При большем сопротивлении это красивее:
1674223501727.png
Такие кривые микросхемы делает TI. Сама измеряет свой ток утечки входа.
 
Да, я там ошибся, т.к. надо делить не а не умножать на сопротивление :) Но ничего разберетесь, что для шутна 0.1 Ом Ik= 0.05 (163.8 мВ / 0.1 Ом / 32760 ).
фух, я тут чуть калькулятор не сломал, не выходит и всё. я так и насчитал, при шунте 0,1 выходит мин 0,4мА макс 1,63А, на второй канал поменял шунт из двух параллельных резисторов по 1,5 Ом, выходит 0,75 Ом, значит Ikoef ставлю 0,006666 так? тогда мин 0,05 мА, макс 218 мА. правильно?
 

pvvx

Активный участник сообщества
фух, я тут чуть калькулятор не сломал, не выходит и всё. я так и насчитал, при шунте 0,1 выходит мин 0,4мА макс 1,63А, на второй канал поменял шунт из двух параллельных резисторов по 1,5 Ом, выходит 0,75 Ом, значит Ikoef ставлю 0,006666 так? тогда мин 0,05 мА, макс 218 мА. правильно?
Ik = 163.8/0,75/32760=0.006666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666667
32760 для точности, т.к. 32768 - 8
Максимальный ток 0.006667*32760=218.41092 мА
Один шаг от 11 бит (т.к. 12 бит со знаком) = 218.41092/2pow11 = 0.10664595703125 мА
 

pvvx

Активный участник сообщества
Резистор с хорошим тестером подключите и откалибруйте на фиксированном напряжении.
Расчеты всё равно будут не совпадать, т.к. на входах стоят ещё резисторы с кондером - фильтр. Они тоже участвуют в смещении нуля от тока утечки входа и на само измерение тока...
А если эта болтанка не нравится - лепите инструментальный усилитель с утечками входа в пикоА и на ADC (или на ту-же INA).
 

pvvx

Активный участник сообщества
Если откалибруете - сохраните PowerProfiler.ini.
В нем есть секция для INA3221:
Код:
[INA3221]
Iz1ch=0
Iz2ch=0
Iz3ch=-0.01457225
Ik1ch=0.005
Ik2ch=0.005
Ik3ch=0.00026144
Uz1ch=0
Uz2ch=0
Uz3ch=0
Uk1ch=0.001
Uk2ch=0.001
Uk3ch=0.001
I2C_CLK=2000
Можно править руками когда программа закрыта.
Но надо учесть, что всё плавает ещё от температуры и от разной скорости опроса :)
А так, для разных вариантов можно закинуть PowerProfiler.exe в разные каталоги, где у каждого варианта будет свой PowerProfiler.ini. Благо файл exe не большой.
Я уже этими INA почти не пользуюсь (остались права на некоторых БП для грязных дел). 24 бита ADC на 250 ksps рулит...
 

pvvx

Активный участник сообщества
Все фильтры в чипах INAxxx - есть тупые сумматоры, типа передискретизация и на низкой скорости дают то-же самое что просто усреднение пачки замеров, т.е. без нормальной децимации.
Дешевка короче и ничего качественного из них не выудить. В INA228/229 якобы 20 битной - всё аналогично - 7..8 бит ADC и суммы...
 
ina226 немного лучше смотрится по пределам измерений.
интересно получается, если минимальный шаг на 0.1 шунте 400мкА, как же он среднее до 5 мкА измеряет вроде бы правильно?
я тут гляжу как esp32 спит, так вот самый глубокий сон с просыпанием только по таймеру потребляет у меня по мультиметру 4,7мкА
Снимок экрана 2023-01-21 144702.jpg

глубокий сон с просыпанием по таймеру и GPIO уже по мультиметру потребляет 22 мкА
Снимок экрана 2023-01-21 144905.jpg

прыгает немного показания среднего от замера до замера, рисует забор на экране, но в общем около верного значения показания среднего, мне это в принципе и нужно было - посмотреть среднее потребление на определенном участке времени.
скоро приедет INA226, с ней немного поточнее видимо будет.
 

pvvx

Активный участник сообщества
Это и есть усреднение. Работает за счет шума.
 

pvvx

Активный участник сообщества
Для замера постоянной составляющей достаточно компаратора и добавить шум на вход. Сумма нулей и единичек даст составляющую постоянного напряжения. Это и близко к передискретизации.
 

pvvx

Активный участник сообщества
Отличие INA3221 от INA226 в том, что разрядность INA3221 чуть менее уровня собственного входного шума чипа. А у INA226 шум уже превышает разрядность и у вас всегда на выходе болтается несколько бит измерения.
А амплитуда входного шума зависит от входного сопротивления. В данном случае от шунта и резисторов фильтра. При замкнутом входе входного шума нет - ему не на чем развивать напряжение, кроме как на внутренних резисторах чипа.
И у INA226 они уже торчат в замере.
Вот такие само-шумные чипы лепит TI. Халтура и маркетинг (обман если по русски).
 

pvvx

Активный участник сообщества
INA228/229 достигает 20 бит на времени измерения в 4218.88 мс (4.2 сек), при этом ENOB по шуму на графике (p-p шума) будет всего 18.7 бит. При этом так называемый ADC измеряет каждые 50 us.
В итоге для наглядного отображения, т.е. для отладки BLE не годится. Но годится исключительно для усредненных измерений за большие промежутки времени.
 
Сверху Снизу