Я хочу запустить микроконтроллер от 1S lipo через линейный регулятор 3V. Однако мне нужно измерить напряжение батареи. Проблема с использованием делителя напряжения заключается в том, что он со временем разряжает батарею, которая может иметь или не иметь встроенную схему защиты. делитель тоже большой.
Может ли кто-нибудь предложить решение, которое позволило бы мне контролировать это напряжение, не убивая незащищенный аккумулятор в течение пары месяцев? Схема может перейти в режим глубокого сна на длительный период, что означает, что решение с делителем напряжения будет потреблять больше всего энергии.
В итоге я использовал решение Ханно и Энди. Спасибо за ваш вклад. К сожалению, можно выбрать только один ответ.
Затем делитель напряжения должен присоединиться к MCU в режиме глубокого сна... Этого можно добиться с помощью P-канального полевого транзистора (например).... Когда MCU проснется, он захочет измерить напряжение батареи, так что это может сделать, это включить цепь, сформированную вокруг полевого транзистора с каналом P, которая соединяет батарею + V с делителем напряжения: -
Вход АЦП показан справа, и на него не будет поступать напряжение, если MCU не активирует BC547 через резистор 10 кОм. Без активации полевой транзистор с каналом P выключен и практически разомкнут цепь. Если вы можете запрограммировать микроконтроллер так, чтобы его управляющий контакт в спящем режиме опускался вниз, это должно быть так, в противном случае добавьте еще один (скажем) резистор 10 кОм от этой точки к земле - это гарантирует, что полевой транзистор P-канала полностью отключен.
Небольшое предупреждение: выбирайте полевой транзистор с каналом P с низким током утечки в выключенном состоянии, иначе это приведет к небольшому сокращению срока службы батареи, но большинство полевых транзисторов будут иметь ток менее 100 нА, а многие — около 1 нА.
И последнее: как регулятор напряжения работает с током в режиме ожидания, когда микроконтроллер выключен? Вам нужно позаботиться и об этом?
Когда вам нужно только узнать, когда батарея будет разряжена (или дать предупреждение незадолго до этого), вам не нужно измерять ее напряжение напрямую. Выходное напряжение регулятора упадет ниже 3 В до того, как батарея достигнет минимального напряжения. Таким образом, вы можете измерить напряжение питания микроконтроллера.
В зависимости от его реальных возможностей, вы можете сделать это без использования делителя напряжения. Для примера посмотрите техническое описание АЦП для PIC12F1822 (на стр. 141):
PIC имеет внутренний источник опорного напряжения и может измерять его значение («буфер FVR», который поступает в мультиплексор). Но он также может использовать напряжение питания в качестве эталона для измерений АЦП (селектор ADPREF вверху).
Учитывая это, можно просто измерить опорное напряжение по отношению к напряжению питания и в результате получить напряжение питания. В случае 12F1822 внутреннее опорное напряжение составляет 2,048 В, а разрешение АЦП составляет 10 бит. Таким образом, когда напряжение питания падает ниже 3,0 В, результат АЦП превышает 699:
Обратите внимание, что более низкое напряжение питания означает более высокие результаты АЦП, поскольку входное напряжение и опорное напряжение меняются местами обычным образом. Вы можете преобразовать эту формулу, чтобы узнать фактическое напряжение питания, учитывая результат АЦП.
Вам действительно нужен линейный регулятор? Запуск микроконтроллера при полном напряжении батареи значительно облегчит задачу. Кроме того, регулятор и микроконтроллер всегда будут потреблять энергию, даже в режимах энергосбережения, постоянно разряжая батарею. Посмотрите на листы данных и имейте это в виду.
Поскольку вход АЦП (обычного АЦП с выборкой и хранением, например, в микроконтроллере AVR) потребляет ток только при фактической выборке значения, переходный низкий входной импеданс можно компенсировать, просто добавив конденсатор:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Максимальная частота дискретизации, конечно, будет ограничена таким образом, поскольку конденсатору потребуется время для перезарядки через большой резистор, прежде чем будет сделана следующая выборка, но я предполагаю, что вы все равно не будете измерять чаще, скажем, один раз в секунду.
Время, необходимое для перезарядки конденсатора, можно установить, изменяя его емкость и/или R1. Больше R1 = меньше "потеря" энергии + ниже макс. частота дискретизации. Меньшая емкость будет заряжаться быстрее для данного резистора и так далее.
Вы захотите максимизировать значение R1, а затем, возможно, потребуется минимизировать значение C1 для достижения желаемой частоты дискретизации.
Минимальная емкость зависит от количества заряда, которое АЦП потребляет для выборки, что, в свою очередь, определяется емкостью буфера выборки АЦП. Для устройств AVR я, кажется, помню, что это значение указано в даташите. Для других микроконтроллеров я не могу сказать, но 1 мкФ на диаграмме, вероятно, будет более чем достаточно в любом случае, и, возможно, его можно уменьшить примерно в 10 раз. Спецификации АЦП скажут.
Редактировать:
Я нашел это в таблице данных Atmel для ATmega1284p. Конденсатор буфера S&H рассчитан на 14 пикофарад , поэтому пары нанофарад для C1 должно быть достаточно.
См., например, обсуждение здесь .
s3c
джме
Энди ака
джме
Энди ака
джме
Энди ака
Ник Алексеев
Серин
Энди ака
мышеловка
Энди ака
dloeckx
Энди ака
dloeckx
Энди ака