Делаем монитор потребления тока на базе EVAL-ADUC7061MKZ

  • Цена: 27,34 USD

Добрый день,
Предлагаю Вашему вниманию мини-обзор, в котором я сделаю монитор потребления тока на базе демонстрационной платы EVAL-ADUC7061MKZ.


История

Идея монитора была найдена на русском сообществе esp8266.ru, там же был найден софт от pvvx, который позволяет решить задачу в несколько кликов.
Моё применение монитора — отладка датчика открытия двери на базе esp8266, который питается от двух АА батареек (на правах анонса нового обзора).

О плате

Плата содержит FTDI usb to serial мост и чип ADuC7061.
ADuC7061 это комбинированный чип, который имеет двухканальный сигма-дельта АЦП со скоростью 8 kSPS, разрядностью 24-бит и ARM7 ядро с флэш и eeprom памятью.

Прошивка ADuC7061

Необходимо установить драйвера для FTDI, в диспетчере устройств нужно назначить последовательному порту имя COM5.
Запускаю ARMWSD.exe и нажимаю Start в программе.
После этого зажимаю и держу кнопку Download на плате и кратковременно нажимаю кнопку Reset.
Вот так выглядит окно при успешной прошивке:


Настройка АЦП

Запустил DebMon.exe из архива.
Указал COM5.
Нажал кнопку Start и в меню Tools->Установки АЦП привел всё к такому виду:

После установки нажал внизу Send. Если график не запущен, то кнопка не активна (маленький бажок).

Первая проба

Подключил шунт к AIN0 и AIN1. В роли шунта использовал 30см кусочек провода от LVDS кабеля LCD матрицы.
Собрал последовательную гирлянду из ЛБП, UT181A и 300Ом 2Вт резистора. Проверим линейность:

Из коробки получилось неплохо.

Измерение

Дверной датчик написан в среде Arduino.
Нормально разомкнутый геркон при открытии/закрытии двери притягивает к земле Reset и датчик подключается к WiFi и взаимодействует с ifttt.com, после уходит в сон до следующего сброса.

График напряжения на шунте при опросе с частотой 5,8Гц:


График напряжения на шунте при опросе с частотой 19,4Гц:

Частоту опроса можно изменить меняя параметры ADCFLT.

Экспортировал данные варианта 19,4Гц и превратил в график тока:


Датчик был активен с 49 по 146-й отсчет, т.е. в течении 97 отсчетов или ровно 5с и в это время он потреблял в среднем 69мА от 3В батареек. Во сне ESP потребляет 16мкА согласно UT181A, а по данным «измерителя» на порядок больше :(.

Работа над ошибками(предлагайте в комментариях)

Сделать другой шунт, добиться лучшей линейности, добавить RC цепочки, сделать делитель на второй канал для измерения напряжения…

24 бит: это невероятно

Планирую купить +7 Добавить в избранное +28 +48
+
avatar
  • Z2K
  • 27 февраля 2019, 02:31
+16
Кот все правильно понял. Выражение физиономии — «Зачем ??!!! Зачем 24 бит??»
+
avatar
+2
Когда рядом десятки микроампер и сотни миллиампер, тогда 24 бит и полезно :)
+
avatar
  • Z2K
  • 27 февраля 2019, 02:44
+1
Так в чем состоит процесс отладки? Вы хотите определить потребление єнергии датчика по времени с учетом динамики работы в разных режимах?
+
avatar
+1
Да. Праздный интерес, что там происходит по питанию и как долго.
+
avatar
+5
… мини-обзор, в котором я сделаю монитор потребления тока
И следом:
Моё применение монитора — отладка датчика открытия двери
После чего я уже насторожился...-и не зря! Как посыпалось!-котам и валерьянки расхотелось… ;)
Когда началась бомбёжка высоконаучными изысканиями и цифрами доводов, разбежались уже все!
+
avatar
+1
«Зачем ??!!!
задушишь…
+
avatar
  • ACE
  • 27 февраля 2019, 02:38
+1
24 бита — это на диапазоне 16А получаем цену деления в 1 мкА, если я ничего не путаю? Я понимаю реакцию кота :)
Дороговато только.
+
avatar
  • Avacha
  • 27 февраля 2019, 09:41
0
2^(24)=16 777 216
Ужос!
+
avatar
+2
Чем вам например INA226 не угодила? не такие космические деньги
+
avatar
0
Бытует мнение, что у INA замер тока и напряжения происходит с разносом по времени. Небольшим, но таки разносом.
+
avatar
  • Safar
  • 27 февраля 2019, 04:13
+11
Судя по всему вы пытаетесь имерить малые токи с шунтом порядка 0.25 ом. На выходе (на входе ацп) получаете милливольты.

Сразу идем в даташит

То, что вы уменьшили частоту преобразования до нескольких Гц — это хорошо.
Реальная разрядность преобразования зависит от частоты и от коэффициента усиления. Это естественный процес АЦП на который влияют аналоговые шумы и шумы квантования. При ваших токах разрядность будет порядка 17-18, никак не 24 (впрочем 24 она никогда здесь не будет) — нужно повышать напряжение, ставить другой шунт.

Шунт в виде провода — это антенна, меняйте на резистор. + при таком низком измерительном напряжении на вход ацп неизбежно будут попадать наводки сопоставимые по величине с полезным сигналом. Еще один аргумент в пользу увеличения сопротивления шунта. Соответсвенно — уменьшить ADC0PGA (ADC Gain)

Теперь вопрос по питанию: я так понимаю, что вы питаете плату измерителя от БП, а DUT от чего? Тут я немного не смог понять из вашего описания. Лучше конечно все развязать по питанию — возможны наводки.

Хотя у МС есть вроде как фильтрация (NOTCH2), но я бы поставил какой-нибудь простейший АА фильтр, хотя бы в виде RC цепочки на частоту среза около 10 Гц. Можно включить NOTCH2.

Chop режим включен — это хорошо.

Насчет фильтрации (Table 45. ADCFLT MMR Bit Designations)
Sinc3 decimation factor — это показатель коэффициента передескретизации, его для лучшей фильтрации 50Гц поставить в значение 127. При этом AF (Averaging Factor), судя по следующей таблице нужно будет ставить в 0. В любом случае, я бы поэксперементировал с этими значениями
+
avatar
+1
Спасибо большое. DUT от батареек. Но в следующей версии я хочу прицепить ESP8266 к последовательной шине и сделать доступ по WiFi+запитать сам измеритель от батарей, чтобы полностью развязаться при измерении будущих конструкций.
Программа может работать по TCP com-порту.
Какой поставить Sinc3 для 60Гц?
Спасибо ещё раз.
+
avatar
  • Safar
  • 27 февраля 2019, 04:57
+4
Для 60Гц — SF=126, AF=0
www.analog.com/media/en/technical-documentation/data-sheets/aduc7060_7061.pdf
стр.48-49
Для батарейного питания, думаю, можно подобрать значения с усреднением (AF > 0).
Фильтрацию (RC) на входе все же сделайте, максимально близко к входам АЦП.
Там сама плата с этой прошивкой по обычному USB работает или через USB/NDIS (сеть TCP/IP через USB)?
+
avatar
+2
Сама демоплата плата по обычному USB представляется COM-портом. Там стоит FTDI вторым чипом.
+
avatar
  • Safar
  • 27 февраля 2019, 05:17
+2
Понял, спасибо
+
avatar
  • dm_a
  • 27 февраля 2019, 09:53
0
Там на ней ещё есть АЦП поэтому ставим в Винду драйвер ком порта и что то чем то прошиваем
+
avatar
  • Z2K
  • 27 февраля 2019, 13:20
+1
Может Вам известен какой-то хороший гайд по автопереключению двух-трех шунтов для переключения диапазонов?
+
avatar
+1
«Переключать» шунты это то еще занятие.
Если нет жестких требований к нормированию напряжения на шунте то делаешь не отключаемым шунт самого слаботочного диапазона и к нему в параллель добавляешь подключаемые шунты вплоть до перекрытия всех диапазонов.
+
avatar
  • Z2K
  • 27 февраля 2019, 14:37
+1
Спасибо, я такую схему и предполагал. Только с автоматизацией логирования измерений на разных пределах.
+
avatar
  • Safar
  • 27 февраля 2019, 15:41
+2
На мой скромный взгляд, лучше усилить сигнал от фиксированного шунта, чем заниматься их переключением. Любой контакт это не очень хорошо. Они нестабильны. Они создают фантомный потенциал, который мешает точным измерениям. Во многих серьезных мультиметрах (6,5р и выше, например) шунт один. Вопрос, какой диапазон токов необходимо перекрыть. Если это диапазон от микро до единиц, то в можно обойтись одним шунтом и, например, операционным усилителем с коммутируемой ООС. В области нано и пикоамперов начинаются пляски с изоляцией, наводками, статистикой, специальными кабелями и прочие чудеса. Без специальных мер точного и стабильного результата имхо не получить
+
avatar
0
Если человек просит гайд то от его устройства не требуется функционал, которому помешают контакты. Это как 24 битный АЦП в умном доме- чисто вопрос престижа, а на деле и 12 бит хватит, по этому никто и не заметит ни кривой земли ни шумов по питанию.
+
avatar
  • Z2K
  • 27 февраля 2019, 20:04
0
Особой точности не надо, важно работа в диапазоне 2А — 1мА, но максимально возможной динамикой и соотв возможностью логирования.
+
avatar
0
Что значит «максимально возможной динамикой»? Гигагерцовые логи?
Реально смотрите на вещи и прорабатывайте задачи, анализируйте объект и не гонитесь за цифрами.
В большинстве не научно-исследовательских задач даже 100 герцовые логи более чем дохрена, и влезть в диапазон 1-2000 для 100 герц это задача для медленного 12 битного ацп и чуть чуть легонькой математики.
+
avatar
  • ksiman
  • 27 февраля 2019, 19:23
0
Всё зависит от требуемой точности результата измерения.
Один шунт легко перекрывает 2 декады переключения.
+
avatar
  • Z2K
  • 27 февраля 2019, 20:05
0
«какой диапазон токов необходимо перекрыть» — три десятичных порядка
+
avatar
  • Z2K
  • 27 февраля 2019, 20:06
0
«лучше усилить сигнал от фиксированного шунта,» — вопрос в том, насколько просто реализовать (купить) измерительный усилитель, и заставить работать с приемливыми параметрами. Там свои заморочки — линейность, шумы, тку, прецизионность, влияние питания и т.д.
+
avatar
0
Обратите внимание, в обозреваемой платке в самом АЦП есть уже усилитель. Я его накрутил на 128 в данном примере.
+
avatar
  • Z2K
  • 27 февраля 2019, 20:15
0
Так он программируеммый?
+
avatar
0
Ага:
+
avatar
  • Safar
  • 27 февраля 2019, 20:44
+1
Они все программируемые))
+
avatar
  • Safar
  • 27 февраля 2019, 20:43
+2
Во многих АЦП стоит программируемый усилитель (Programmable Gain Amplifier или PGA).
Даже в тех же китайских модулях с ads1115 или ads1118, 19. Но там 16 разрядов. Ищите 24 разрядный под свои потребности, 1220, 1232 например, но они естественно дороже, смотрите даташит на предмет PGA и его разрядности. Как правило, там есть возможность установить коэффициент усиления от 1 до 128 кратно степени двойки. Для более менее точных измерений лучше брать 24 разряда. Конечно эффективных из них будет 18..21. Но в 16 разрядных, как понимаете, будет тоже не 16.
+
avatar
0
диапазон 1-2000мА, о каких 24 битах вообще идет речь? Там 16 бит хватит даже с очень кривыми руками, а ровными так и 12 бит.
+
avatar
  • Z2K
  • 28 февраля 2019, 01:33
0
Спасибо, но — «Гигагерцовые логи?», «о каких 24 битах вообще идет речь?» — откуда Вы взяли? Где такое у меня написано?
Максимально возможная частота считывания для конкретной реализации — ниже разрядность выше частота. А так, пока что, меня и 100Гц устроит. Хотя ниже написал извлечение из характеристик прибора — «Период измерения — 3 мкс. Сверхмалый период измерения вкупе с полосой пропускания аналогового тракта 50 кГц позволяет достоверно фиксировать даже быстротекущие процессы,».
Хочу определять и фиксировать разные режимы работы устройства по потребляемому току.
+
avatar
0
100 герц и диапазон 1-2000 это задача для 12ти битного АЦП, например STM32 младших серий.
Если дружба и любовь с математикой то можно попытаться и с 10 битного АЦП АВРки выкачать такую точность, 100 герц это вагон времени для разнообразных математических извращений.
+
avatar
  • Z2K
  • 28 февраля 2019, 13:53
0
Спасибо. «с 10 битного АЦП АВРки» — ну, єто не вариант, сразу уперется в потолок. И авр не камень для «для разнообразных математических извращений.» Хотелось бы иметь задел на будущее усовершенствование. А СМТ32 конечно вариант, но все же єто не специализированный АЦП с соответствующим хорошим ИОН, встроенной комплексной термокомпенсацией и т.д. На хабре есть хороший пост о разработке осцилка на СТМ32 с использованием недокументированных возможностей параметров єтого МК. Но автоматического переключения диапазонов измерения там нет.
+
avatar
+1
Из моей очень многолетней практики скажу одно- «задел на будущее» это миф, трата времени на то, что почти никогда не выстреливает, и чем радужнее кажутся перспективы усовершенствования темы тем больше ты времени потратишь на правильную схемотехнику и правильное ядро программы, чтоб потом не переделывать.
В современном мире задачи надо решать по мере их поступления, надо делать здесь и сейчас, чем быстрее тем лучше, на том, что доступно. Если есть в руках STM32 и ты с ним хорошо знаком- делай. Если нету но где-то завалялся AVR и с ним ты еще лучше знаком- делай на нем.
Когда сделаешь то очень высока вероятность того, что банальным скользящим средним с удалением пары экстремумов сверху и снизу ты выйдешь как раз на ту точность, которая тебя вполне устроит в данном проекте. Сделал и пустил в работу. А потом уже будет новое утро, новый день и новый проект.
+
avatar
  • Z2K
  • 01 марта 2019, 21:44
0
Спасибо. Безусловно Ваши высказывания актуальны, внимательно прочитал. Я частенько страдаю перфекционизмом. «А потом уже будет новое утро, новый день и новый проект.» — и єлектроника, и философия, и жизнь :)
+
avatar
  • Safar
  • 28 февраля 2019, 02:21
+1
12 разрядов это 4096 уровней, думаю, что «16 разрядный» ацп как раз и даст около того, ну может около 14 (16т) в лучшем случае. Если брать диапазон 1:20000 мА, то здесь даже 10мА будет на уровне шума. Дергать PGA можно, но работая с отсчетами на такой частоте, можно выйти в клиппинг, либо, как вариант, смотреть превышение порога переключения вторым каналом, настроенным на более высокую скорость преобразования (если у МС два физических преобразователя, и можно отдельно управлять частотой дискретизации), и от него управлять PGA.
Но я бы предпочел использовать АЦП с большей разрядностью, это более простое и логичное решение, имхо.
Тем более, если не переключать коэффициент усиления, то даже при 20 эффективных разрядах можно получить разрешающую способность в 20 мкА на диапазоне 20А. Задача, как я понял, состоит в получении данных в диапазоне 1:20000, т.е. на нижней границе диапазона (1мА) достоверные данные всё ещё можно будет получить, с 16 разрядами без определенных манипуляций такого не получится
+
avatar
  • Safar
  • 28 февраля 2019, 02:59
0
Пардон, на ночь ноль лишний углядел) там же 1-2000.
+
avatar
0
У страха глаза велики.
Я бы на месте товарища Z2K взял обычную 10ти битную AVR и раскачивал разрядность математикой, пока мозги молодые и мягкие можно для себя открыть чудесный мир цифровой обработки сигналов, за ним будущее.
+
avatar
  • Safar
  • 28 февраля 2019, 08:41
0
С децимации все равно сильно много не получишь.
Там от 10 разрядов avr наверное только после обработки можно получить 10 enob. Да и если сигнал будет резко меняться, там при сильной децимации будет наложение спектра, соответсвенно, искажения и неверные данные. Кроме того желательно сигнал «зашумить» на уровне младших разрядов. Ну и как я говорил, если есть желание получать на нижнем пределе данные, а не шум, то голой авр-кой это вряд ли получится
+
avatar
  • Z2K
  • 28 февраля 2019, 01:43
0
Спасибо еще раз за подсказки, буду смотреть доки. «Ищите 24 разрядный под свои потребности,» — не делаю я акустику для подводных лодок. :) В єтом «ТЗ» мои требования довольно скромные при современных возможностях. Хочу попроще, но интегрированное решение.
+
avatar
0
Да ладно, по дижики голый ADUC7061 стоит 13 канадских баксов, а 1220 — 12,8
+
avatar
  • Safar
  • 28 февраля 2019, 07:20
0
Мало того, ADшники еще и сэмлы бесплатные высылают)

Но с доставкой в Россию все, конечно, не очень хорошо
+
avatar
  • Z2K
  • 28 февраля 2019, 02:02
0
По 1220 на функцинальной не совсем понятно — PGA на каждый канал свой или общий?
+
avatar
  • Safar
  • 28 февраля 2019, 07:37
0
Он там один, как и преобразователь. Каналы заведены на мультиплексор и обработка происходит по очереди. Это тоже нужно учитывать, если, например, каналов много и нужна скорость. Если скорость, кстати, большая не нужна, то можно посмотреть на 1232, они дешевле и у китаезов есть готовые платы, но там только 10sps или 80sps, а у 1220 до 2000sps. На самом деле вариантов масса, вопрос в доступности, если не смотреть на готовые модули на али, например
+
avatar
  • Z2K
  • 28 февраля 2019, 14:14
0
Да, как-то ступил. По схеме как-раз однозначно. Если б PGA были на каждый канал они б стояли до мультиплексора.
+
avatar
  • Z2K
  • 28 февраля 2019, 14:24
0
1232 — ИОН только внешний?
+
avatar
  • Safar
  • 28 февраля 2019, 18:22
0
Кстати, да, 1232 это ж «мостовой» ацп. Там действительно своего источника нет. В мостах в любом случае пропорция от плеч, на рефы подается напряжение питания моста. По большому счету можно прикрутить 2.5в на P и заземлить N. Вопрос, нужно ли?
+
avatar
  • Z2K
  • 01 марта 2019, 21:46
0
Спасибо.
+
avatar
+1
ads1220 $3-5 (или распаянная за $10) + ардуина/стмка за пару долларов выйдет дешевле и 4 канала/24бит/2Ксемпла

(хотя наверняка есть специализированные ацп для шунта, которые выйдут ещё дешевле)
+
avatar
0
Да, возможно бы я и пошел этим путем, если бы не готовый софт.
Из «работой паяльником» здесь только шунт.
Помышевал и готовые значения на экране и в CSV…
+
avatar
+1
Кота натянули клёво!
+
avatar
  • bob2005
  • 27 февраля 2019, 07:18
+3
Ты зачем кота душишь!?
+
avatar
  • ksiman
  • 27 февраля 2019, 07:26
+4
Он его успокаивал, иначе было вот так :)
+
avatar
+2
Он его успокаивал, иначе было вот так :)
… не-е-е..-вот так:
+
avatar
+1
Стоит заметить что не душу, а так, шкурку поднатянул сверху. Очень хотелось сделать похожий снимок:
+
avatar
  • kalobyte
  • 27 февраля 2019, 08:00
0
такая разрядность нужна для широкого диапазона измеряемых токов с использованием одного непереключаемого шунта
что забавно — вчера только думал об этом, откуда-то мысля прилетела про измеритель тока и шунт
не ты ли ее генерировал? а то я ощущаю мысли клиентов своих, когда они мне звонить собираются, но звонят обычно на следущий день (пгокгастинигуют)

вобщем тебе нужен специальный измерительный резистор с 4 выводами, он стоит 5 баксов где-то, если не брать у китаез
тту недавно был обзор таких резисторов с китая перемаркированых
+
avatar
  • pet80
  • 27 февраля 2019, 08:39
+7
Не понял ни о чем речь, ни что сделано руками. Что-то написано в ардуино.
Где-то взята программа монитора, написанная в делфях, и установлена.
Для меня, так все очень сжато. Если это обзор, то в чем его суть? Или это просто информация, что существует плата, к ней можно найти софт, который с ней работает.
Хотя бы конкретные ссылки на источники программ, хотя бы монитора. Может автор программы там дал подробности.
+
avatar
  • vovka36
  • 27 февраля 2019, 09:27
+2
Аналогичные мысли. Недообзор какой-то…
+
avatar
0
Жесть. Ну в обзоре же всё написано. Pvvx, esp8266.ru, неужели этого мало?
Ардуины, да, нет…
Если есть вопросы по делу, давайте задавайте, а плач Ярославны — заканчивайте
+
avatar
  • IN19
  • 27 февраля 2019, 09:42
0
Из пушки — по воробьям. Хотя, если в учебных целях или как демонстрация возможностей платы, то нормально.
+
avatar
  • longamin
  • 27 февраля 2019, 10:59
-1
Мне больше нравится высказывание микроскопом гвозди забивать)
+
avatar
  • mike888
  • 27 февраля 2019, 10:54
0
Непонятно зачем такой диапазон нужен. И если уж так хочется диапазон, то берётся аудио карта, намного дешевле выйдет.
+
avatar
  • Sanja
  • 27 февраля 2019, 11:33
+1
нет бы купить www.unwireddevices.com/products/developers/energymon/ за похожие деньги (разрешение — 1мка, замеры через каждые 10мкс) и узбагоиться…
+
avatar
0
Спасибо за идею, но Ваше узбагоительное не доставляется в мой город:

+
avatar
  • Z2K
  • 27 февраля 2019, 20:13
0
Динамический диапазон — 107. Измеритель регистрирует ток в диапазоне от 0,1 мкА до 3 А — более 7 порядков величины! Это возможно благодаря трём подподдиапазонам измерений тока с автоматическим переключением в реальном времени (задержка переключения не более 5 мкс при переключении вверх, не более 20 мкс при переключении вниз).
Период измерения — 3 мкс. Сверхмалый период измерения вкупе с полосой пропускания аналогового тракта 50 кГц позволяет достоверно фиксировать даже быстротекущие процессы, такие как выход микроконтроллера из сна для быстрой передачи данных. Данные отображаются на встроенном экране (накопленное время, накопленная энергия), а также передаются на компьютер.
+
avatar
  • Lvenok
  • 27 февраля 2019, 12:33
0
У меня вот другая головоломка. Сделать многоканальный регистратор токов 220/380 с бесконтактными датчиками. А то бывает так, что на один 6-амперный автомат понавешают штук 30 единиц всяких контроллеров, реле, защит, а ты потом думай, как вычислить, что именно там выбивает…
+
avatar
  • Z2K
  • 27 февраля 2019, 13:06
0
А что часто такое случается?
+
avatar
  • Lvenok
  • 27 февраля 2019, 13:34
0
ну бывает на разном оборудовании иногда
+
avatar
  • Z2K
  • 27 февраля 2019, 14:41
0
дел
+
avatar
0
Никаких регистраторов тебе не нужно, хватит катушек с пиковыми детекторами — выбило прошелся тестером и по максимальному напряжению на конденсаторах детекторов определил где был максимальный ток.
+
avatar
  • Lvenok
  • 27 февраля 2019, 13:34
0
Мне важно понимать в какой момент это происходило, и какое оборудование в этот момент было включено…
+
avatar
0
Тогда загуглить например abb cms. Хотя у тех же вайренбордовцев тоже есть многоканальная измериловка- вроде на 6 каналов тока, ну и на три фазы напряжение
+
avatar
  • Lvenok
  • 27 февраля 2019, 21:56
0
Ну у ABB и ценник соответсвующий.
Я вот думаю на Меге+ESP с подобными датчиками сваять что-то. 8-10 каналов.
aliexpress.com/item/Free-Shipping-1pcs-Non-invasive-Split-Core-Current-Transformer-AC-current-sensor-100A-SCT-013-000/32754634532.html
+
avatar
+1
24 битами на реальном измерении тут и не пахнет, 16 выкачать будет за счастье.