Измерьте напряжение литий-ионного аккумулятора (таким образом, оставшуюся емкость)

С чем я работаю: я запускаю свою самодельную плату Arduino (в том смысле, что я использую загрузчик Arduino и редактор кода) на 3,3 В и питаюсь от ионно-литиевой батареи, которая заряжается через USB от соответствующего микрочипа. ИС зарядного устройства.

Чего я пытаюсь достичь: я хочу измерять емкость батареи каждую минуту или около того. У меня подключен ЖК-дисплей, поэтому идея в том, что общая настройка позволяет мне узнать, как работает батарея в данный момент. В техническом описании батареи есть кривая зависимости напряжения от уровня разрядки, поэтому, измерив напряжение батареи, я могу оценить оставшуюся емкость (очень приблизительно, но для меня достаточно!).

Что я сделал:

  • (EDIT: обновлены значения резисторов и добавлен переключатель P-MOSFET на основе предложений @stevenvh и @Jonny).

  • Я подключил делитель напряжения от батареи V_plus, при этом большая «часть» шла к выводу аналогового считывания (т. е. АЦП) на микросхеме Arduino/Atmega.

  • Делитель составляет 33 кОм на 10 кОм, что позволяет измерять до 4,1 В максимум литий-ионной батареи от моего микроконтроллера уровня 3,3 В.

  • Кроме того, используя один из контактов ввода-вывода, подключенный к n-канальному MOSFET, я могу переключать ток через делитель только тогда, когда мне нужно измерение.

  • Вот приблизительная схема (обновлена ​​во второй раз на основе предложений @stevenvh и @Nick):

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

Мой вопрос:

  • Каковы мои текущие настройки?

  • Мои единственные ограничения: (1) я хотел бы сделать грубое измерение емкости батареи на основе показаний напряжения, как описано выше. (2) Я хотел бы, чтобы делитель напряжения не мешал считыванию моей зарядной ИС наличия батареи (в моей первоначальной настройке делитель иногда приводил к тому, что ИС неправильно считывала наличие батареи, даже когда батарея отсутствовала).

«Я использовал большие номиналы резисторов». Входной контакт может иметь ток утечки, типичное значение в худшем случае составляет 1 мкА. При малом токе через делитель это может привести к искажению показаний.
Поэтому мне нужен низкий ток через делитель, но достаточно высокий, чтобы он был как минимум на порядок выше максимального тока утечки.
Или используйте полевой транзистор для включения и выключения делителя, как я предложил в этом ответе на аналогичный вопрос.
С полевым транзистором на месте, в выключенном «состоянии» делителя, как вы думаете, может ли это также решить проблему неправильного считывания наличия батареи микросхемой зарядного устройства? (Кстати, какое совпадение, что этот человек опубликовал вопрос и сегодня!)
Полагаю, что так. Полевой транзистор будет иметь ток утечки в выключенном состоянии, но он будет на несколько порядков меньше, чем у 5 мю Делитель берет. (Я думаю, что зарядное устройство очень чувствительно).
@stevenvh: Понятно. Я уточнил Вопрос с обновленными деталями и схемой.
У вас неправильный полевой транзистор не на той стороне. Если вы отключите это, полное напряжение будет на входном контакте, так как R1 не будет потреблять ток. Вам нужен P-MOSFET на стороне высокого напряжения, чтобы при его выключении вывод ввода-вывода замыкался на землю.
Переключение на верхней стороне имеет смысл. Кроме того, я использовал N-MOSFET, потому что он у меня был; я не могу заставить его работать с одним?
Доработана схема с P-MOSFET; огромное спасибо! Я все еще был бы признателен за указание на альтернативу N-MOSFET, просто для будущих знаний.

Ответы (3)

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

Кажется, это очень похоже на схему Ника, вероятно, он был занят ее рисованием, когда публиковал :-).

Во-первых, почему вы не можете использовать N-FET на стороне высокого напряжения: ему нужно напряжение затвора на несколько вольт выше, чем исток, а 4,2 В — это все, что у вас есть, ничего выше, так что это не сработает.

У меня более высокое значение для подтяжки, хотя значение 100 кОм также подойдет. 10 кОм вызовут ненужный дополнительный ток в 400 мкА при измерении. Не конец света, но в обоих случаях это 1 резистор, так почему бы не использовать более высокое значение.

Для полевых МОП-транзисторов можно выбрать из множества деталей, учитывая, что требования не такие строгие; можно рассмотреть недорогие, такие как, например, Si2303 для P-канала и BSS138 для N-канала.

Спасибо за формальный ответ! Думаю, я мог бы придумать несколько вариантов использования этой конкретной комбинации. Я обновил свою схему в Вопросе, основываясь на этом. И оцените объяснение N-FET.
Что бы вы порекомендовали в качестве примера подходящего N-канального МОП-транзистора (в идеале типа SMD) для использования здесь? IRF530 кажется большим и не слишком дешевым. (Для P-Channel я вижу, что Si2303 поставляется в SMD, так что об этом уже позаботились.)
@Inga - Вам не нужен ток, поэтому сопротивление во включенном состоянии не так важно. Просто посмотрите на пороговое напряжение затвора: оно должно быть включено при 3,3 В, но даже тогда оно не должно потреблять ток, и тогда есть большой выбор. BSS138 — один из самых дешевых, которые я смог найти, и он прекрасно подойдет .

@Инга. Это скорее комментарий, чем ответ. Но я хотел бы опубликовать изображение, поэтому я публикую его как ответ.

Ваш микроконтроллер (uC) питается от +3,3 В. Сток предлагаемого P-MOSFET может достигать +4,1 В. В настоящее время показано, что логический сигнал +3,3 В не сможет полностью отключить P-MOSFET. Q6 на схеме ниже образует выход с открытым стоком, который устойчив к +4,1 В.

C14 снижает импеданс, который увидит ваш аналого-цифровой преобразователь.

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

[...] напряжение батареи (таким образом, оставшаяся емкость)

Вы можете обнаружить, что измерение напряжения батареи не является точным способом определения оставшейся емкости. В портативном оборудовании (сотовых телефонах, ноутбуках) емкость батареи оценивается путем измерения тока на входе и выходе из батареи. Существуют десятки специализированных микросхем для измерения уровня заряда батареи ( например, bq27200 ), которые помогают с этой задачей.

Почему бы не один N-канальный МОП-транзистор на нижней стороне и два резисторных делителя на верхней стороне?
[из комментария ниже]

Переключатель нижнего плеча имеет проблемы, когда напряжение батареи (V bat ) больше, чем напряжение питания микроконтроллера (V cc ). Когда нижний переключатель выключен, земляной конец делителя напряжения плавает, делитель больше не делится, полное напряжение батареи появляется на выводе ADC микроконтроллера. Это может повредить УК. Это также создаст путь утечки, через который аккумулятор разрядится.
Переключатель верхнего плеча требуется, когда V bat > V cc .

1 Для краткости я буду использовать V cc , но это обсуждение применимо и к V dd , AV cc , AV dd . Если сомневаетесь, посмотрите в даташите, конечно.

Спасибо, Ник! Это имеет смысл, и я обновил схему (указатель уровня топлива является опцией, но я также пытаюсь изучить некоторые основы электроники и экспериментировать, отсюда и идея делителя напряжения)
Почему бы не один N Mosfet на нижней стороне и два резисторных делителя на верхней стороне? Не понимаю, почему необходимо использовать N Mosfet для управления P Mosfet
@Luis Я отредактировал ответ и добавил ответ на ваш комментарий.

Ad.A: Я думаю, будет достаточно использовать простой делитель напряжения для определения напряжения батареи. Хотя, вы должны тщательно выбирать сопротивление. Согласно техническому описанию ATmega328 , внутреннее сопротивление ваших входов АЦП составляет 100 кОм . См. «Рисунок 23-8. Схема аналогового ввода». Если ваш делитель имеет импеданс, сравнимый с входом АЦП, входная схема АЦП будет в основном вести себя как другой узел делителя. Это может дать вам смещения в показаниях АЦП.

Использование делителя с сопротивлением до 10 кОм на шинах было бы достаточно низким, чтобы игнорировать входное сопротивление АЦП, при этом потребляя всего 410 мкА. Если это слишком много для вашего приложения, вы, конечно, можете выбрать большее сопротивление, но имейте в виду, что АЦП есть и подключен к Vcc/2.

Это объяснение имеет смысл. Конечно, 0,4 мА не так уж и много! Я просто пытался быть как можно более идеалистичным :) Есть ли у вас какие-либо предположения о том, почему наличие этого делителя может повлиять на чтение моего зарядного устройства IC о том, есть ли батарея?
Я предполагаю, что между положительным контактом батареи, где находится делитель, и + 5 В от USB все еще есть связь. Я не знаю вашу конкретную схему, но я уверен, что вы можете сделать вывод, что и где происходит, если вы посмотрите на схему Arduino .
Я уверен, что если вы последуете идее Стивена об использовании полевого транзистора для подключения/отключения делителя, когда это необходимо, все будет отлично. МОП-транзисторы имеют сопротивление, которым можно пренебречь для вашего делителя. Возможно, вам понадобится еще один АЦП, чтобы контролировать, подключен ли USB или нет.
Спасибо; Я обновил вопрос на основе двух предложений и добавил схему. Что касается мониторинга USB-питания, зарядная ИС уже имеет для этого выход состояния!