Power Profiler

pvvx

Активный участник сообщества
работает. :) Сча скрипт накатаем...
 

pvvx

Активный участник сообщества
А то сделали из полу-технического форума whatsapp - sms-ками кидаться :)
 

pvvx

Активный участник сообщества
JDY-10 (TLSR8266) и INA199A1.
Или "Сам себя замеряхом".
BLE - WebBluetooth замер:
upload_2020-1-26_4-42-52.png
(Имеем посредственное разрешение в 16 бит, за счет аппаратной передискретизации и децимации от 14 битного SAR)
TLSR8266 - это BT 4.2 и с него шибко не разогнать поток (макс 5 килобайт в сек с обработкой ещё других задач).
Зато в реалии работает стабильнее во много раз чем с WiFi!
C его USB1.1 поток разгоняется за 400 килобайт.

Т.е. образуется такая схема измерения:

Вариант 1:
Ставим INA226 с шунтом и входы INA199A1/2/3 от этого-же шунта.
Вход напряжения INA226 измеряет напряжение после шунта.
Низко-скоростной поток с INA226 выдает напряжение и ток (чтение по I2C), а c INA199 читаем со встроенного ADC до 200 kps в USB.

Вариант 2:
Ставим INA199A1/2/3 с шунтом, входы тока INA226 (через делитель из резисторов) с выхода INA199.
Вход напряжения INA226 измеряет напряжение после шунта.
С того-же выхода INA199 на встроенный ADC до 200 kps в USB.
 

pvvx

Активный участник сообщества
Надо будет ещё разъемы для щупов осла вывести - это если надо поглазеть ток в предел полосы INA199...
Потребление TLSR8266 при маяке BLE (TX+8дБ):
upload_2020-1-26_5-34-38.png
По началу и концу осциллограммы, видно, что LDO 3.3В без нагрузки (17 uA + INA199) дает пилу...
 

pvvx

Активный участник сообщества
Для @A_D, а то раскидались по темам, по поводу
CV-Meter — Простой проект (начало)
Дописал начало, там же исходники и всё прочее доступно.
измерений мкА:

LDO при колебании тока с 30 мА до десятка и менее мкА дает всплеск напряжения не менее на +-1 мВ.

Это, при шунте в 1 Ом, отражается как цикл заряд-разряд емкости в модуле на емкость у LDO.

0.001В / 1 Ом = 0.001 A,

т.е. 1 мА туда-сюда и образуются отрицательные показания. Хорошо ещё, что фронт отключения питаний в кишках BLE чипов не сверх быстрый и можно подобрать Trc цепей…

Увеличение емкостей на LDO (до дцать тысяч мкФ) и немного в модуле это дело исправляет (особенно провал в минус тока) и пока удалось достигнуть только менее десятка мкА...

nRF52840 везет – у него жор всегда больше и провала в минус осциллограф не покажет и правильно считает всякие минимальные...

На всех других чипах BLE (у меня) – минимальные токи отображаются в отрицательных значениях - осел считает что этот провал и есть минимальный ток, портит и усреднения по минимальным токам.
Необходимо выделять область между активностями для правильного подсчета в режимах sleep и deep-sleep.

И второе: Установка нескольких INA2xx ни к чему хорошему не приведет. Всё равно придется переключаться между шунтами. Проще поставить 3 резистора последовательно и к ним одну INA2xx. От соединения резисторов вывести выводы на питание замеряемого. Там и перетыкать, а INA2xx остается всегда на крайних.
Пример: первый резистор 0.1 Ом, второй из двух 1.8 Ом, третий из двух 18 Ом (все из стандартного ряда и +-1% макс). Итог: шунт в 0.1, 1, 10 Ом.
Но лучшее решение - это INA199A2/3 + INA226 + встроенный в MCU ADC один шунт на весь диапазон от сотен мА до десятков nА.
Встроенный в MCU ADC имеет обычно диапазон в 1..1.3В 16 бит, что есть 1.3/65536 = 0.00002В шаг младшего бита. При Gains в 200 у INA199A3, на шунте это будет 0.00002 В/200 = 0.0001 мВ. На этих уровнях там сплошной шум...
0.0001 мВ на 1 Ом шунта - это 100 nA на бит. Дальше смысла нет, т.к. питание всё равно в сотни раз шумнее и вычислить "что тама за парой мкА" возможно только большой выборкой с дикой фильтрацией. 1 ksps, как у вас сейчас, не годится. 10 кsps тоже мало...
 

A_D

Active member
LDO при колебании тока с 30 мА до десятка и менее мкА дает всплеск напряжения не менее на +-1 мВ.

Это, при шунте в 1 Ом, отражается как цикл заряд-разряд емкости в модуле на емкость у LDO.

0.001В / 1 Ом = 0.001 A,

т.е. 1 мА туда-сюда и образуются отрицательные показания. Хорошо ещё, что фронт отключения питаний в кишках BLE чипов не сверх быстрый и можно подобрать Trc цепей…

Увеличение емкостей на LDO (до дцать тысяч мкФ) и немного в модуле это дело исправляет (особенно провал в минус тока) и пока удалось достигнуть только менее десятка мкА...
Да, заметил это и собственно в простом варианте сделал просто - отсекаю все значения ниже 0. Интересно будет всё это попробовать на более навороченном варианте... пока не на чем. :)

И второе: Установка нескольких INA2xx ни к чему хорошему не приведет. Всё равно придется переключаться между шунтами. Проще поставить 3 резистора последовательно и к ним одну INA2xx. От соединения резисторов вывести выводы на питание замеряемого. Там и перетыкать, а INA2xx остается всегда на крайних.
Пример: первый резистор 0.1 Ом, второй из двух 1.8 Ом, третий из двух 18 Ом (все из стандартного ряда и +-1% макс). Итог: шунт в 0.1, 1, 10 Ом.
Но лучшее решение - это INA199A2/3 + INA226 + встроенный в MCU ADC один шунт на весь диапазон от сотен мА до десятков nА.
Встроенный в MCU ADC имеет обычно диапазон в 1..1.3В 16 бит, что есть 1.3/65536 = 0.00002В шаг младшего бита. При Gains в 200 у INA199A3, на шунте это будет 0.00002 В/200 = 0.0001 мВ. На этих уровнях там сплошной шум...
0.0001 мВ на 1 Ом шунта - это 100 nA на бит. Дальше смысла нет, т.к. питание всё равно в сотни раз шумнее и вычислить "что тама за парой мкА" возможно только большой выборкой с дикой фильтрацией. 1 ksps, как у вас сейчас, не годится. 10 кsps тоже мало...
Да, про шунты - это я предусмотрел на продвинутом варианте - там один INA и шунты + Mosfet.
А вот со скоростями и более низкими измерениями, пока ничего не могу сказать.

Спасибо за комментарий!!
 

pvvx

Активный участник сообщества
Неа. Тормоз этот dygraphs. Не может осилить 10 ksps, а на смарте и того менее...
Но есть элементарная замена - js Canvas - Используется в WebGL для аппаратного ускорения 3D графики
97.6 ksps ADC WiFi Web
и c 00:26

Кароче без проблем с потоками в сотни ksps.
 

cheblin

Member
Тормоз этот dygraphs
элементарная замена - js Canvas - Используется в
скажи, тебе ж ведь просто нравится постоянно сидеть в луже и развлекать публику пузырями её газификации

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

всё что написано тобой нужно постоянно перепроверять
 

pvvx

Активный участник сообщества
скажи, тебе ж ведь просто нравится постоянно сидеть в луже и развлекать публику пузырями её газификации

иначе я немогу объяснить откуда из тебя сыпется вся эта бредятина...
Какая ещё бредятина?
ты весь свой, какой есть, авторитет помножаешь на нуль.
От авторитетов мне ни холодно не жарко. Авторитеты в тюрьме :p
всё что написано тобой нужно постоянно перепроверять
Даны рабочие примеры - проверять там нечего. Прошиваете, включаете и смотрите.
 

pvvx

Активный участник сообщества
Ещё раз - dygraphs тормоз для десятка килосемплов.
@cheblin - Да, и есть различие - я ссылаюсь на свои примеры, а ваших нет. Жду от вас примера работы dygraphs с сотней килосемплов - покажите свой авторитет :)
 

pvvx

Активный участник сообщества
по ссылкам ходим.... из которых очевидно что dygraphs использует ТОТ самый canvas который ему
не удалось нормально запрограмить и скорость упала...
Да а сам canvas в глубине использует C++ и asm. :p
дурочку решил запустить?
 

pvvx

Активный участник сообщества
Я пытался сделать что на dygraphs когда он ещё работал с одной точкой в сек, т.к. большие скорости в динамике не предполагались и это было пару лет назад. Копайте данный форум - там про это писал и искали для ESP8266 что быстрее...
 
Сверху Снизу