С чем я работаю: я запускаю свою самодельную плату 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) Я хотел бы, чтобы делитель напряжения не мешал считыванию моей зарядной ИС наличия батареи (в моей первоначальной настройке делитель иногда приводил к тому, что ИС неправильно считывала наличие батареи, даже когда батарея отсутствовала).
Кажется, это очень похоже на схему Ника, вероятно, он был занят ее рисованием, когда публиковал :-).
Во-первых, почему вы не можете использовать N-FET на стороне высокого напряжения: ему нужно напряжение затвора на несколько вольт выше, чем исток, а 4,2 В — это все, что у вас есть, ничего выше, так что это не сработает.
У меня более высокое значение для подтяжки, хотя значение 100 кОм также подойдет. 10 кОм вызовут ненужный дополнительный ток в 400 мкА при измерении. Не конец света, но в обоих случаях это 1 резистор, так почему бы не использовать более высокое значение.
Для полевых МОП-транзисторов можно выбрать из множества деталей, учитывая, что требования не такие строгие; можно рассмотреть недорогие, такие как, например, Si2303 для P-канала и BSS138 для N-канала.
@Инга. Это скорее комментарий, чем ответ. Но я хотел бы опубликовать изображение, поэтому я публикую его как ответ.
Ваш микроконтроллер (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 . Если сомневаетесь, посмотрите в даташите, конечно.
Ad.A: Я думаю, будет достаточно использовать простой делитель напряжения для определения напряжения батареи. Хотя, вы должны тщательно выбирать сопротивление. Согласно техническому описанию ATmega328 , внутреннее сопротивление ваших входов АЦП составляет 100 кОм . См. «Рисунок 23-8. Схема аналогового ввода». Если ваш делитель имеет импеданс, сравнимый с входом АЦП, входная схема АЦП будет в основном вести себя как другой узел делителя. Это может дать вам смещения в показаниях АЦП.
Использование делителя с сопротивлением до 10 кОм на шинах было бы достаточно низким, чтобы игнорировать входное сопротивление АЦП, при этом потребляя всего 410 мкА. Если это слишком много для вашего приложения, вы, конечно, можете выбрать большее сопротивление, но имейте в виду, что АЦП есть и подключен к Vcc/2.
Стивенвх
бордбит
Стивенвх
бордбит
Стивенвх
бордбит
Стивенвх
бордбит
бордбит