Schwachstrom Batterieüberwachung

13

Ich möchte einen Mikrocontroller von einem 1S-Lipo über einen 3V-Linearregler betreiben. Ich muss jedoch die Batteriespannung messen. Das Problem bei der Verwendung eines Spannungsteilers besteht darin, dass die Batterie mit der Zeit entladen wird, wobei möglicherweise eine Schutzschaltung eingebaut ist. Da der von mir verwendete AVR eine empfohlene Eingangsimpedanz von nicht mehr als 10 K hat, kann ich die nicht herstellen Teiler auch zu groß.

Kann jemand eine Lösung vorschlagen, mit der ich diese Spannung überwachen kann, ohne eine ungeschützte Batterie über ein paar Monate zu töten? Die Schaltung kann für einen längeren Zeitraum in den Tiefschlafmodus wechseln, was bedeutet, dass eine Spannungsteilerlösung die meiste Leistung verbraucht.


Am Ende habe ich sowohl Hanno als auch Andys Lösung verwendet. Vielen Dank für all den Input. Kann leider nur eine Antwort wählen.

s3c
quelle

Antworten:

16

Der Spannungsteiler muss dann im Tiefschlafmodus mit der MCU verbunden werden. Dies kann beispielsweise mit einem P-Kanal-FET erreicht werden. Wenn die MCU aufwacht, möchte sie die Batteriespannung messen Sie können einen Schaltkreis einschalten, der um einen P-Kanal-FET gebildet ist, der die Batterie + V mit dem Spannungsteiler verbindet:

Bildbeschreibung hier eingeben

Der ADC-Eingang ist rechts dargestellt und es liegt keine Spannung an, es sei denn, die MCU hat den BC547 über den 10k-Widerstand aktiviert. Ohne Aktivierung ist der P-Kanal-FET ausgeschaltet und der Stromkreis praktisch offen. Wenn Sie die MCU so programmieren können, dass sie im Ruhezustand ein Pulldown-Signal an ihrem Steuerstift hat, fügen Sie von diesem Punkt bis zur Erdung einen weiteren Widerstand von beispielsweise 10 k hinzu - dies stellt sicher, dass der P-Kanal-FET vollständig ausgeschaltet ist.

Ein kleiner Hinweis: Wählen Sie einen P-Kanal-Fet mit geringem Leckstrom, wenn dieser ausgeschaltet ist. Andernfalls wird die Batterielebensdauer geringfügig verkürzt, die meisten Fets werden jedoch unter 100 nA liegen und viele im Bereich von 1 nA.

Eine letzte Sache - wie funktioniert der Spannungsregler mit seinem Standby-Strom, wenn das Mikro ausgeschaltet ist - müssen Sie sich auch darum kümmern?

Andy aka
quelle
Ich verwende den MCP1802 mit 25uA Q-Strom. Dieser Teil funktioniert einwandfrei. Vielen Dank für den Vorschlag, genau die Art von Lösung, die ich gesucht habe.
S3C
Warum sollten Sie einen P-Chan mit Transitor und keinen einzigen N-Channel-Fet verwenden?
jme
@jme - Der ADC und die MCU sind auf Masse bezogen. Daher ist es sinnvoll, die höhere Spannungsversorgung zu schalten. Wenn ich ein N-Kanal-Gerät verwenden würde, würde der Strom immer noch durch den oberen Widerstand und die parasitären Dioden in der MCU fließen, wenn sie sich im Schlafmodus befinden.
Andy aka
@Andyaka Was für ein N-Fet wurde umgekehrt, so dass die Diode umgekehrt wurde, damit der Strom nicht zu den ADC-Widerständen fließt?
Mittwoch,
3
@jme "Warum keinen Low-Side-Schalter verwenden (z. B. N-ch FET oder μC I / O-Pin)?" ist eine gute frage. Hier ist der Grund. Die Batteriespannung kann größer als Vcc sein. Wenn der Low-Side-Schalter geöffnet ist, erscheint die Batteriespannung am A / D-Pin. Dies kann zum Verbrennen des A / D oder zum Auslaufen der Batterie durch die Schutzdioden am A / D-Pin führen. Verwandter Thread.
Nick Alexeev
2

Wenn Sie nur herausfinden müssen, wann die Batterie leer sein wird (oder kurz davor warnen müssen), müssen Sie die Spannung nicht direkt messen. Die Ausgangsspannung des Reglers wird unter 3 V fallen, bevor die Batterie ihre minimale Spannung erreicht. Sie können also die Versorgungsspannung des Mikrocontrollers messen.

Abhängig von den tatsächlichen Fähigkeiten können Sie dies ohne Verwendung eines Spannungsteilers tun. Ein Beispiel finden Sie im ADC-Datenblatt für einen PIC12F1822 (auf Seite 143): ADC-Blockdiagramm

Der PIC verfügt über eine interne Spannungsreferenz und kann seinen Wert messen (den 'FVR-Puffer', der in den Multiplexer gelangt). Es kann aber auch die Versorgungsspannung als Referenz für ADC-Messungen verwendet werden (der ADPREF-Wahlschalter oben).

Vorausgesetzt, man kann einfach die Spannungsreferenz in Bezug auf die Versorgungsspannung messen und als Ergebnis die Versorgungsspannung erhalten. Beim 12F1822 beträgt die interne Referenz 2,048 V, und der ADC hat eine Auflösung von 10 Bit. Wenn also die Versorgungsspannung unter 3,0 V fällt, liegt das ADC-Ergebnis über 699:

EINDCresult=1024VichnVref
EINDCresult=10242,048VVsupply

Beachten Sie, dass eine niedrigere Versorgungsspannung höhere ADC-Ergebnisse bedeutet, da Eingangsspannung und Referenzspannung auf die übliche Weise vertauscht werden. Sie können diese Formel konvertieren, um anhand des ADC-Ergebnisses die tatsächliche Versorgungsspannung zu ermitteln.

hli
quelle
0

Benötigen Sie wirklich den Linearregler? Wenn Sie den µC bei voller Batteriespannung betreiben, wird dies viel einfacher. Außerdem verbrauchen der Regler und der µC auch im Energiesparmodus immer Strom, wodurch die Batterie kontinuierlich entladen wird. Schauen Sie sich die Datenblätter an und denken Sie daran.

Da der ADC-Eingang (eines gewöhnlichen Sample-and-Hold-ADC wie bei einem AVR µC) nur beim tatsächlichen Abtasten eines Werts Strom verbraucht, kann die vorübergehende niedrige Eingangsimpedanz durch einfaches Hinzufügen eines Kondensators kompensiert werden:

schematisch

simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab

Die maximale Abtastfrequenz wird natürlich auf diese Weise begrenzt, da der Kondensator Zeit benötigt, um sich über den großen Widerstand aufzuladen, bevor die nächste Abtastung durchgeführt wird, aber ich gehe davon aus, dass Sie nicht mehr als beispielsweise einmal pro Sekunde messen werden.

Die zum Aufladen des Kondensators erforderliche Zeit kann durch Variieren seiner Kapazität und / oder von R1 eingestellt werden. Größeres R1 = weniger "Energieverlust" + weniger max. Abtastfrequenz. Kleinere Kapazitäten werden für einen bestimmten Widerstand schneller aufgeladen und so weiter.
Sie möchten den Wert von R1 maximieren und müssen dann möglicherweise den Wert von C1 minimieren, um die gewünschte Abtastfrequenz zu erzielen.

Die Mindestkapazität hängt von der Ladungsmenge ab, die der ADC für eine Probe entnimmt, was wiederum durch die Kapazität des ADC-Probenpuffers bestimmt wird. Bei AVR-Geräten erinnere ich mich anscheinend, dass dieser Wert im Datenblatt angegeben ist. Für andere µCs kann ich nicht sagen, aber die 1µF im Diagramm werden wahrscheinlich in jedem Fall mehr als genug sein und können möglicherweise um den Faktor 10 oder so reduziert werden. Die Spezifikationen des ADC werden es zeigen.

Bearbeiten:

Ich habe dies in Atmels Datenblatt für den ATmega1284p gefunden. Der Kondensator des S & H-Puffers ist auf 14 Pico- Farad spezifiziert , daher sollten ein paar Nano- Farad für C1 ausreichend sein.

Analoge Eingangsschaltung aus dem Datenblatt ATmega1284p

Siehe zum Beispiel die Diskussion hier .

JimmyB
quelle
Der lineare Regler wird wiederum von einem Ultra-Low-Current-Voltage-Detektor gesteuert, der die uC und den Regler effektiv aus dem Stromkreis entfernt, falls die Batterie unter einen bestimmten Wert sinkt.
S3C
Ok, aber ist der Regler für die µC-Versorgung erforderlich, oder kann der µC direkt von Vbat gespeist werden, in welchem ​​Fall er ohne Spannungsteiler arbeiten kann.
JimmyB
Ich scheine jetzt zu verstehen, dass Sie nicht wirklich fragen, wie das Gerät gebaut werden kann, um minimalen Strom zu verbrauchen, sondern nur, wie sichergestellt werden kann, dass der LiPo nicht zerstört wird. Ist das richtig?
JimmyB
Ja, der Regler wird für die uC-Versorgung benötigt. Die Verwendung von minimaler Leistung wird bevorzugt, ist aber nicht mein Hauptanliegen.
S3C
Wie sieht der Ausgang des von Ihnen erwähnten Spannungsdetektors aus?
JimmyB