Логгер для оценки тока потребления MCU

    • #78207
      Николай
      Ключник

      u37

      16 авг 2023, 16:25
      Занимался вопросом некоторое (продолжительное) время, набил шишки. Сам проект выброшен, посему готовых схем и прош fw не будет. Да и смысла нет – номенклатура меняется, сейчас проще слепить на чём-то другом. Мне кажется, здесь важнее найденные овраги, которые могут с’экономить время кому-то со схожими желаниями. ))
      Проект закрыт, посему в этом разделе конференции.
      Итак, суть проекта – сделать устройство типа автономного логического анализатора, скорее показометра.
      В него входят (входили):
      – MCU типа stm32f103 для управления этой ерундой
      – SPI дисплей 2.4 с resistive tach
      – стабилизатор
      – захват ina226
      Питание от USB, но можно было (бы) перецепить и на аккумулятор.
      Теперь мысли, т.к. ничего другого и не осталось: ))
      1. Процессор. Здесь ничего особенного не требуется, лишь бы было достаточно RAM и сбоку где-то болтался serial Flash, т.к. сваливать данные куда-то надо, а TF карта есть лишь отсрочка отсюда до мусорного ведра. ((
      Впрочем, для эпизодического перекидывния можно и ее, но ни в коем случае не вместо. Serial Flash дешевые 64-128-256Mbits есть на али (скажем W25Q64FV).
      2. Дисплей меньше 2.4 не информативен, и tach очень полезен. Подключить и использовать очень просто – выводы подключаются к портам с ADC входами. Вначале один вывод соединяется на 0, второй на input PU и считывается состояние – если считался 0, то запускается процедура считывания: попеременно подается напряжение на вывходы X и счтывается уровеннь на Y, затем наоборот. В результате получаются координаты X-Y нажатой точки. Т.е. никакой специальной аппаратной поддержки не требуется, как и веремени уходит мизер. Особо часто считывать не нужно, вы же не картинку рисуете. ))
      График на дисплее лучше делать с использованием прокрутки =части= экрана. Поэтому сразу выбирайте тип контроллера и ориентируйте дисплей в соответствии с реализации этой функции. Без нее получите переливание экрана, станет противно. Крайне желательно не стараться дорисовывать статичную полоску с разметкой. Полностью избавиться от мерцания мне не удалось, хотя дефект и не бросается в глаза.
      Сам график (тока) нужно делать не в общепринятом формате, а немного подумать и сделать логарифмическую разбивку по Y. Это позволит видеть гораздо больше полезной информации. Я использовал сетку 1-2-5 и кратно 10 с цветной подсветкой фона – вполне читаемо отождествляемо.
      3. Стабилизатор. Вообще, для питания устройства нужно или батарейное питание или USB-шное. Т.е. или …. короче, вы понимаете. Т.к. лично мой контингент не захватывает всё многообразие пп элементов, то (лично я) ограничился стабилизатором с переключением 2.7-3.0-3.3-3.6В. Сделано на стабилизаторе 2.7В, в цепь gnd которого от управляющего MCU подяется подставка с 2х портов-резисторов. Почему 3.6? – это максимальное безопасное напряжение большенства электроники и, с другой строны, типовое напряжение при работе от аккумулятора. Что позволяет запитывать device целиком вместо аккумулятора. Остальные – для запуска процессора напрямую, без стабилизатора устройства. Требования к самому стабилизатору – он должен обеспечивать требуемый ток и обеспечивать достойную стабилизацию этого напряжения. Т.к. серийностью я не занимаюсь, то вполне устроила поддельная XC6206 )) с током потребления 8 мкА. К слову, оригинальныя XC6206 _НЕ_ устроила отвратительным коэф-том стабилизации.
      На выходе стабилизатора весомый батарейный конденсатор, куда уж без него.
      4а. Датчик измерения.
      А вот это отдельная песня. Для начала о ADC. Для измерения, для измерения, стоит брать SD ADC. У них есть две характеристики – разрядность выходных данных и разрядность выходных данных. Меня не переклинило, не надейтесь. )) Просто есть реальная разрядность (отношение сигнал-шум) и есть физическая (сколько бит считывается). И это совсем не одно и то-же. У SD ADC важен уровень шума и от него можно считать разрешение измерения. Ну а, сколько разрядов у ADC написано – это всё фиолетово. Т.е. 16-битная ina226 вполне делает 24-разрядные ADC.
      И тут плавно переходим к другому нюансу – можно считывать ИЛИ быстро ИЛИ точно. И быстро И точно нельзя. При повышении частоты квантования уровень шума растет. Посему, высокоразрядные ADC не так уж и важны, нужен лишь их низкий уровень шума (на выбранной частоте квантования).
      Из сказанного следует, что я применил ina226. Это не абсолютно лучшее решение, но я сравнивал уровень шума различных микросхем ADC и знаете … документация не врет, и читать ее надо очень внимательно.
      Из имеющегося, ina226 вполне (или не-вполне )) устроила. Ее низкая разрядность в 16 бит не мешает работе, т.к. даже сверх-малошумящие ADC на (относительно) высокой частоте захвата в 16 бит вряд-ли вписываются. Я знаю, что было бы поставить лучше, но проект делался не вчера и … они не прям уж лучше.
      4б. Датчик тока.
      Это тоже прелесть. Обычно ставят или просто шунт или продвинутая схема на ОУ. Второе я даже рассматривать не стал – интерЭсно посмотреть на реализацию высоколинейного малошумящего измерителя на ток до 2А (от 0!).
      Итак, шунт. Это банальный резистор, что тут трудного? Увы, это еще один овраг, о котором надо четко помнить ДО разработки устройства, или всё выйдет неказисто-переделывать. Обычный резистор собран из разных материалов. При негреве возникает термо-ЭДС. Для данного прибора это крайне важный момент – как вам понравится, когда после броска тока (потебления процессором) с последующим сбросом, прибор фиксирует шлейф нипойми-чего, да еще и на порядок больше полезного сигнала. Описывать эпупею с поиском резистора я не буду, у каждого своя дорога, скажу лишь мой итог пути. Для того и написал тему – поделиться наработками. У меня шунт, это моток провода (медного, естественно), поверх (вокруг) микросхемы измерения температуры I2C. Т.к. температура в коробке меняется не так сильно и тепловая инерция протяженная во времени, то этой компенсации вполне хватало. При этом я в-принципе избавился от термо-ЭДС. Даже для 16-битного ADC это было жуть-что-творилось.
      5. Прочее
      Т.к. хотелось иметь не абтрактный пиписькомер, а что-то полезное, то кроме записи аналоговой величины тока писалось и состояние логических входов. Они же выводились в нижней части графика лога потребеления. Это нужно для того, чтобы записывать синхронную информацию о действиях – дернул лог. вход, значит в схеме что-то переключилось. От этого удобно смотреть именно фронт происходящего. Да и анализировать-искать данные гораздо продуктивнее. У меня было 3 входа, упихивались к 3 отсчетам ADC 16 бит в их word, по биту в слово. Почему 3? – у ina226 очень неприятная разблюдовка по частоте семплирования, поэтому основной захват был на 0.3ms, а показ на 1 мс. Это сделано как для попадания в стандартную сетку 1 мс, так и целью минимизации искажений захватываемого сигнала. Если вы будете сигнал с кратностью 1 мс захватывать с периодом 1 мс, то только в идеальном случае он будет записываться без искажений. В реальности произойдет усреднение двух соседних отсчетов (потеря разрешения по времени). Что-бы этого избежать, захват делается чаще и интеллектуально разбирается. ))

      По измерению тока покоя. Т.к. оцифровка ведется на высшей частоте ADC, то получается низкая разрядность из-за шума. Но, это SD ADC и на него распространяется стандартное правило – уровень шума снижается пропорционально корню из кол-ва семплов. К слову, практические замеры это == подтверждают.
      На логгере дискрет (шум ADC) не ползолит точно показать наименьшее значение тока потребления, но … вообще-то, это и не особо нужно. В-среднем, все отсчеты дадут эту величину, достаточно лишь их сложить (усреднить). Т.о., можно показывать на дисплее величину тока (а она должна быть цифирьной, не только один график же) как среднее за всё показанное время. И тут будет совсем другое – если перевести разрядность интерфейса той-же ina226, то получится порядка 10 мкА на 1 отсчет. Караул? … ага. На экране 200 точек, при выводе точки так-же проводилось усреднение по сборке отсчетов ADC в 1 точку экрана. Скажем, интересует средний ток за 1 секунду. Это будет 3-30 тысяч отсчетов (в зависимости от ADC). Если взять 10 мкА на 1 отсчет, то за секунду получается порядка в 100 раз меньше (0.1 мкА). Т.к. необходимость измерения сверхмалых величин относится к току покоя/простоя, то длительное, не_мгновенное, измерение вполне применимо к ситуации. В остальных случаях измерение от наноампер в-принципе бессмысленно.

       

      x893

      16 авг 2023, 19:18
      Для измерения от 100nA до 100uA берется готовая (например STK3700/STK3200 или по схеме делается своё, но это путь в никуда).
      Для измерения от 100mA до 2A – INA… подходящая по скорости
      Конечно пол-дня придётся руками и головой поработать.

       

      AVI-crak

      16 авг 2023, 21:00
      Медный шунт с активной цифровой термокомпенсацией – это уже за гранью.
      На рынке огромное количество готовых к применению шунтов. Надо просто смотреть чего применяют китайцы, и использовать волну с минимальным ценником. С другой стороны есть супер-убер крутые шунты с тиражом в сотни штук (просто 100 шук) – с ценником крыла боинга. Оно конечно хорошо, но зачем? Тут-же рядом китаец с таким-же дизайном, конструктивном, и характеристиками – просто название другое и цвет.
      Сейчас волна константановых скобок на 4 контакта (для поверхностного монтажа). Цена настоящей скобки из америки – за 10 евро. У китайца 30 рублей!!! Металл и станок один и тот-же…

      _________________

      Katz

      17 авг 2023, 08:13
      x893 писал(а):
      Для измерения от 100nA до 100uA берется готовая (например STK3700/STK3200 или по схеме делается своё, но это путь в никуда).

      У силабсовских отладок нашёлся недостаток – фиксированное выходное напряжение. Можно, конечно, менять, но будет меняться и верхний предел измерения тока.
      А, собственно, почему своё – путь в никуда? Если делать не отдельное устройство, а интегрировать в настроечный стенд, то как раз оптимальное решение.
      (Автору темы). Спасибо за подробное описание, пару лет назад походил по тем же граблям. :))

      _________________

      u37

      17 авг 2023, 14:31
      ))
      Katz, (да кто кто захочет), если возникнет желание, поделитесь своими идеями по поводу subj. Кому-то это может здорово помочь (а меня и научить)).

       

      cheblin

      17 авг 2023, 16:25
      Цитата:
      2. Дисплей

      я бы, всё что возможно, вынес наружу через bluetooth

       

      Katz

      17 авг 2023, 18:44
      cheblin писал(а):
      я бы, всё что возможно, вынес наружу через bluetooth

      В таком случае и контроллер стоит взять с bluetooth, чтобы лишнего не городить. 🙂

      _________________

      cheblin

      17 авг 2023, 19:20
      Katz писал(а):
      контроллер стоит взять с

      чёт поинтересовался. и точно. Всё укардено до нас

       

Viewing 0 reply threads
  • Вы должны войти в систему, чтобы ответить в этой теме.
Интepecнoe нa фopумe:
Авторизация
*
*
Регистрация
*
*
*
Генерация пароля
×