Was ist falsch an meiner USB-Li-Ion-Ladeschaltung?

Ich versuche, meine eigene Platine basierend auf dieser zu entwerfen:

Original-Schaltpläne

Meine relevanten Schaltpläne sind hier:

Neue Schaltpläne

Ihr Q3-Transistor DMG3415U-7 wurde veraltet, also verwendete ich DMP2045U-7, der ein ähnlicher Ersatz zu sein schien. Sowie ein weiterer Regler.

Für das Batterieladegerät (U3 in den Originalschaltplänen, U10 in meinem) wollte ich die MCP73831-Variante (Datenblatt hier) verwenden , die diese 3 Statusausgänge enthält:

Status

Um also alle 3 Möglichkeiten aus einem Mikrocontroller auszulesen, habe ich das Schema mit R12-R14 und D10 hinzugefügt. Die Idee war, dass es einen Vbus von 5 V vom USB-Kabel geben würde. Wenn der Chipausgang STAT niedrig ist, wäre der Abgreifpunkt 0 V. Wenn es hoch wäre, wären es 2,5 V, und die Diode würde vor unerwünschtem Stromfluss zwischen STAT und Vbus schützen. Wenn STAT hochohmig ist, wäre der Abgreifpunkt 1,6 V. Mit einem ADC am Abgriffspunkt konnte ich also zwischen allen 3 Zuständen unterscheiden. PROG wird auf dem Mikrocontroller-Pin, mit dem es verbunden ist, auf Masse gesetzt.

Ich fabrizierte das Brett, und das funktioniert nicht. Erstens lädt der MCP-Chip den Akku nicht auf. Wenn eine USB-Verbindung besteht, aber keine Batterie, ist der Vbat-Ausgang 0 V. Wenn sowohl USB als auch die Batterie angeschlossen sind, misst Vbat die Spannung der Batterie (z. B. 3,5 V), nicht 4,2 V oder eine andere Spannung, die zum Laden bei konstanter Spannung verwendet wird. Ich habe es 12 Stunden lang "laden" gelassen und die Spannung hat sich nie geändert.

Zweitens funktioniert das Ausgabeschema "STAT" nicht. Wenn man die Spannungen als Vbus, Vstat und den Abgreifpunkt misst, sind die mit einem Multimeter in den verschiedenen Situationen gemessenen Spannungen wie folgt:

Keine Batterie:

V Bus = 5 V

Vstat = 3,86 V (sollte 3,3 V sein)

Vreading = 2,82 V (sollte 1,6 V sein)

"Laden":

V Bus = 5 V

Vstat = 3,86 V (sollte 0 V sein)

Vreading = 2,82 V (sollte 0 V sein)

Kein USB, nur Akku eingesteckt:

Vbus = 1,46 V (sollte 0 V sein)

Vstat = 2,5 V (sollte 0 V sein)

Vreading = 1,95 V (sollte 0 V sein)

Ich verstehe nicht, was falsch laufen könnte. Vbus und Vbat sind direkte Verbindungen zu ihren Quellen, ansonsten sind sie nicht mit anderen Komponenten verbunden, die nicht in den Schaltplänen zu sehen sind. Stimmt etwas im Design nicht? Warum funktionieren sowohl der Ladevorgang als auch die Statusanzeige nicht richtig?

Antworten (1)

Wenn Sie einen Ersatz-GPIO haben, können Sie anstelle des Spannungsteilers die folgende Schaltung verwenden.

Geben Sie hier die Bildbeschreibung ein

Diese Schaltung nimmt einfach einen zweiten GPIO-Pin (CTL), den Sie verwenden können, um STAT mit den p-Kanal- (Q5) und n-Kanal-MOSFETs (Q6) hoch- oder herunterzuziehen. Wenn STAT schwebend ist, ändert es sich abhängig vom Wert von CTL, andernfalls bleibt STAT gleich.

Da ich eine 3,3-V-MCU verwenden wollte, habe ich dann Q7 verwendet, um den invertierten Ausgang mit einem Pull-up auf 3,3 V zu treiben

Um den Wert von ~STAT zu erhalten, müssen Sie 2 Messungen vornehmen, eine mit CTL hoch und eine mit CTL niedrig.

Hoffe das hilft.