Я пытаюсь разработать свою собственную печатную плату на основе этой:
Мои соответствующие схемы здесь:
Их транзистор Q3 DMG3415U-7 устарел, поэтому я использовал DMP2045U-7, который казался аналогичной заменой. А также еще один регулятор.
Для зарядного устройства (U3 в оригинальной схеме, U10 в моей) я хотел использовать вариант MCP73831 (данные здесь) , который включает в себя эти 3 выхода состояния:
Итак, чтобы считать все 3 возможности с микроконтроллера, я добавил схему с R12-R14 и D10. Идея заключалась в том, что будет Vbus 5V от USB-кабеля. Если на выходе микросхемы STAT низкий уровень, точка датчика будет 0 В. Если бы он был высоким, это было бы 2,5 В, и диод защитил бы от любого нежелательного протекания тока между STAT и Vbus. Если STAT имеет высокий импеданс, точка датчика будет 1,6 В. Таким образом, с АЦП в точке измерения я мог различать все 3 состояния. PROG заземляется на выводе микроконтроллера, к которому он подключается.
Я изготовил плату, и это не работает. Во-первых, чип MCP не заряжает батарею. Если есть соединение USB, но нет батареи, выходное напряжение Vbat равно 0 В. Если и USB, и батарея подключены, Vbat измеряет напряжение батареи (скажем, 3,5 В), а не 4,2 В или другое напряжение, используемое для зарядки при постоянном напряжении. Я оставил его «заряжаться» на 12 часов, и напряжение не изменилось.
Во-вторых, не работает схема вывода "STAT". Измеряя напряжения как Vbus, Vstat и точку датчика, напряжения, измеренные мультиметром в различных ситуациях, следующие:
Нет батареи:
Vшина = 5В
Vstat = 3,86 В (должно быть 3,3 В)
Vreading = 2,82 В (должно быть 1,6 В)
"Зарядка":
Vшина = 5В
Vstat = 3,86 В (должно быть 0 В)
Vreading = 2,82 В (должно быть 0 В)
Нет USB, только батарея подключена:
Vbus = 1,46 В (должно быть 0 В)
Vstat = 2,5 В (должно быть 0 В)
Vreading = 1,95 В (должно быть 0 В)
Я не понимаю, что может пойти не так. Vbus и Vbat являются прямыми соединениями со своими источниками, в противном случае они не подключаются ни к каким другим компонентам, не показанным на схемах. Что-то не так в дизайне? Почему и зарядка, и индикатор состояния не работают должным образом?
Если у вас есть запасной GPIO, вместо делителя напряжения вы можете использовать следующую схему.
Эта схема просто использует второй вывод GPIO (CTL), который вы можете использовать для подтягивания вверх или вниз STAT с помощью p-канальных (Q5) и n-канальных (Q6) MOSFET. Если STAT плавающий, то он будет меняться в зависимости от значения CTL, иначе STAT останется прежним.
Учитывая, что я хотел использовать микроконтроллер на 3,3 В, я использовал Q7 для управления инвертированным выходом с подтяжкой до 3,3 В.
Чтобы получить значение ~STAT, вам нужно будет снять 2 показания: одно с высоким CTL, а другое с низким CTL.
Надеюсь это поможет.