Мониторинг слаботочной батареи

Я хочу запустить микроконтроллер от 1S lipo через линейный регулятор 3V. Однако мне нужно измерить напряжение батареи. Проблема с использованием делителя напряжения заключается в том, что он со временем разряжает батарею, которая может иметь или не иметь встроенную схему защиты. делитель тоже большой.

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


В итоге я использовал решение Ханно и Энди. Спасибо за ваш вклад. К сожалению, можно выбрать только один ответ.

Ответы (3)

Затем делитель напряжения должен присоединиться к MCU в режиме глубокого сна... Этого можно добиться с помощью P-канального полевого транзистора (например).... Когда MCU проснется, он захочет измерить напряжение батареи, так что это может сделать, это включить цепь, сформированную вокруг полевого транзистора с каналом P, которая соединяет батарею + V с делителем напряжения: -

введите описание изображения здесь

Вход АЦП показан справа, и на него не будет поступать напряжение, если MCU не активирует BC547 через резистор 10 кОм. Без активации полевой транзистор с каналом P выключен и практически разомкнут цепь. Если вы можете запрограммировать микроконтроллер так, чтобы его управляющий контакт в спящем режиме опускался вниз, это должно быть так, в противном случае добавьте еще один (скажем) резистор 10 кОм от этой точки к земле - это гарантирует, что полевой транзистор P-канала полностью отключен.

Небольшое предупреждение: выбирайте полевой транзистор с каналом P с низким током утечки в выключенном состоянии, иначе это приведет к небольшому сокращению срока службы батареи, но большинство полевых транзисторов будут иметь ток менее 100 нА, а многие — около 1 нА.

И последнее: как регулятор напряжения работает с током в режиме ожидания, когда микроконтроллер выключен? Вам нужно позаботиться и об этом?

Я использую MCP1802 с током Q 25 мкА, эта часть работает нормально. Спасибо за предложение, именно то решение, которое я искал.
зачем использовать P-Chan с переходником, а не один N-Channel fet?
@jme - АЦП и MCU привязаны к земле, поэтому имеет смысл переключить питание с более высоким напряжением. Если бы я использовал N-канальное устройство, то через верхний резистор и через паразитные диоды в микроконтроллере, когда он находится в спящем режиме, все равно будет постоянный сток.
@ Andyaka Andyaka, какой идентификатор N-Fet был перевернут, чтобы диод был перевернут, чтобы ток не протекал к резисторам АЦП?
@jme - почему бы тебе не поднять это как правильный вопрос?
@ Andyaka Я думаю, что могу, но я просто не чувствую, что это нужно. я просто хотел попросить разъяснений по выбору дизайна и думаю, что это имеет отношение к предоставленному вами ответу.
Кстати, это P-канальный полевой транзистор.
@jme «Почему бы не использовать переключатель низкой стороны (например, N-канальный полевой транзистор или вывод ввода-вывода μC)?» хороший вопрос. Вот почему. Напряжение батареи может быть больше, чем Vcc. Когда нижний боковой переключатель разомкнут, напряжение батареи появится на контакте A/D. Это может привести к перегоранию аналого-цифрового преобразователя или к утечке заряда батареи через защитные диоды на выводе аналого-цифрового преобразователя. Связанная тема.
Разве вы не должны добавить подтягивающий резистор на базе BC547? В противном случае, если MCU отключен, этот контакт может плавать и иногда включать цепь и разряжать батарею.
Он питается от батареи, и если операционная система выбирает плавающее или тройное состояние этого выхода, тогда следует добавить резистор.
Я блуждаю - какие последствия были бы, если бы я использовал MOSFET вместо BJT в этой схеме? Ток утечки мосфета?
Ток утечки мосфета, принимающего логический сигнал, не должен быть проблемой @miceuz
Можно ли построить схему без МОП-транзистора и подключить делитель напряжения сразу между батареей и коллектором BC547? Я предполагаю, что это произошло бы за счет небольшой ошибки в считывании напряжения, которую, возможно, даже можно было бы рассчитать?
@dloeckx уверен, что это возможно построить, но когда BJT «выключен», каким будет напряжение на выводе MCU?
@Andyaka Andyaka Я буду держать булавку на низком уровне с MCU. Я планирую добавить эту схему в ESP32, которая может сохранять состояние вывода ввода-вывода даже в режиме глубокого сна.
@dloeckx Я думаю, что вы упускаете смысл этих вопросов и ответов. Все дело в том, чтобы поддерживать очень низкое энергопотребление, когда PFET неактивен. То, что вы предлагаете, с таким же успехом можно было бы сделать с делителем потенциала, подключенным непосредственно к батарее. Могу ли я предложить вам поднять это как новый вопрос, потому что это не место для расширенных дискуссий по завершенному сеансу вопросов и ответов.

Когда вам нужно только узнать, когда батарея будет разряжена (или дать предупреждение незадолго до этого), вам не нужно измерять ее напряжение напрямую. Выходное напряжение регулятора упадет ниже 3 В до того, как батарея достигнет минимального напряжения. Таким образом, вы можете измерить напряжение питания микроконтроллера.

В зависимости от его реальных возможностей, вы можете сделать это без использования делителя напряжения. Для примера посмотрите техническое описание АЦП для PIC12F1822 (на стр. 141):Блок-схема АЦП

PIC имеет внутренний источник опорного напряжения и может измерять его значение («буфер FVR», который поступает в мультиплексор). Но он также может использовать напряжение питания в качестве эталона для измерений АЦП (селектор ADPREF вверху).

Учитывая это, можно просто измерить опорное напряжение по отношению к напряжению питания и в результате получить напряжение питания. В случае 12F1822 внутреннее опорное напряжение составляет 2,048 В, а разрешение АЦП составляет 10 бит. Таким образом, когда напряжение питания падает ниже 3,0 В, результат АЦП превышает 699:

А Д С р е с ты л т знак равно 1024 * В я н В р е ф
что в нашем случае
А Д С р е с ты л т знак равно 1024 * 2.048 В В с ты п п л у

Обратите внимание, что более низкое напряжение питания означает более высокие результаты АЦП, поскольку входное напряжение и опорное напряжение меняются местами обычным образом. Вы можете преобразовать эту формулу, чтобы узнать фактическое напряжение питания, учитывая результат АЦП.

Вам действительно нужен линейный регулятор? Запуск микроконтроллера при полном напряжении батареи значительно облегчит задачу. Кроме того, регулятор и микроконтроллер всегда будут потреблять энергию, даже в режимах энергосбережения, постоянно разряжая батарею. Посмотрите на листы данных и имейте это в виду.

Поскольку вход АЦП (обычного АЦП с выборкой и хранением, например, в микроконтроллере AVR) потребляет ток только при фактической выборке значения, переходный низкий входной импеданс можно компенсировать, просто добавив конденсатор:

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

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

Время, необходимое для перезарядки конденсатора, можно установить, изменяя его емкость и/или R1. Больше R1 = меньше "потеря" энергии + ниже макс. частота дискретизации. Меньшая емкость будет заряжаться быстрее для данного резистора и так далее.
Вы захотите максимизировать значение R1, а затем, возможно, потребуется минимизировать значение C1 для достижения желаемой частоты дискретизации.

Минимальная емкость зависит от количества заряда, которое АЦП потребляет для выборки, что, в свою очередь, определяется емкостью буфера выборки АЦП. Для устройств AVR я, кажется, помню, что это значение указано в даташите. Для других микроконтроллеров я не могу сказать, но 1 мкФ на диаграмме, вероятно, будет более чем достаточно в любом случае, и, возможно, его можно уменьшить примерно в 10 раз. Спецификации АЦП скажут.

Редактировать:

Я нашел это в таблице данных Atmel для ATmega1284p. Конденсатор буфера S&H рассчитан на 14 пикофарад , поэтому пары нанофарад для C1 должно быть достаточно.

Схема аналогового ввода из таблицы данных ATmega1284p.

См., например, обсуждение здесь .

Линейный регулятор, в свою очередь, будет контролироваться детектором напряжения сверхнизкого тока, эффективно удаляя как uC, так и регулятор из цепи, если батарея разряжается ниже определенного значения.
Хорошо, но требуется ли регулятор для питания микроконтроллера, или микроконтроллер может питаться напрямую от Vbat, и в этом случае он может работать без какого-либо делителя напряжения.
Теперь я, кажется, понимаю, что вы на самом деле не спрашиваете, как устройство может быть построено с использованием минимальной мощности, а только как убедиться, что LiPo не разрушится. Это правильно?
Да, регулятор необходим для питания UC. Предпочтительно использовать минимальную мощность, но это не моя главная задача.
Как выглядит выход упомянутого вами детектора напряжения?
Я использую MCP112, это двухтактный детектор напряжения. (регулятор напряжения MCP1802)
Возможно, тогда на его выходе можно было бы поставить делитель напряжения; но предложение Энди Ака, вероятно, лучше.
К вашему сведению, для семейства STM32L входное сопротивление АЦП составляет 50 кОм, поэтому делитель напряжения с мегомными резисторами не будет работать.