Ich möchte einen Mikrocontroller von einem 1S-Lipo über einen 3V-Linearregler betreiben. Ich muss aber die Batteriespannung messen. Das Problem bei der Verwendung eines Spannungsteilers besteht darin, dass er die Batterie im Laufe der Zeit entladen würde, in die möglicherweise eine Schutzschaltung eingebaut ist oder nicht. Da der von mir verwendete AVR eine empfohlene Eingangsimpedanz von nicht mehr als 10 K hat, kann ich das nicht machen Teiler auch zu groß.
Kann jemand eine Lösung vorschlagen, die es mir ermöglichen würde, diese Spannung zu überwachen, ohne eine ungeschützte Batterie über ein paar Monate zu zerstören? Die Schaltung kann für einen längeren Zeitraum in den Tiefschlafmodus wechseln, was bedeutet, dass eine Spannungsteilerlösung die meiste Energie verbrauchen würde.
Am Ende habe ich sowohl die Lösung von Hanno als auch von Andy verwendet. Danke für den ganzen Input. Kann leider nur eine Antwort auswählen.
Der Spannungsteiler muss dann im Tiefschlafmodus an die MCU angeschlossen werden ... Dies kann beispielsweise mit einem P-Kanal-FET erreicht werden .... Wenn die MCU aufwacht, möchte sie die Batteriespannung messen, na und Es kann eine Schaltung einschalten, die um einen P-Kanal-FET herum gebildet ist, der die Batterie + V mit dem Spannungsteiler verbindet: -
Der ADC-Eingang wird rechts angezeigt und es wird keine Spannung ankommen, es sei denn, die MCU hat den BC547 über den 10k-Widerstand aktiviert. Ohne Aktivierung ist der P-Kanal-FET ausgeschaltet und praktisch offen. Wenn Sie die MCU so programmieren können, dass sie im Ruhezustand einen Pulldown an ihrem Steuerstift hat, sollten Sie andernfalls einen weiteren (z. B.) 10k-Widerstand von diesem Punkt zur Masse hinzufügen - dies stellt sicher, dass der P-Kanal-FET vollständig ausgeschaltet ist.
Ein kleines Wort der Warnung: Wählen Sie einen P-Kanal-FET mit niedrigem Leckstrom, wenn er ausgeschaltet ist, sonst wird die Batterielebensdauer leicht beeinträchtigt, aber die meisten FETs werden unter 100 nA liegen und viele im Bereich von 1 nA.
Eine letzte Sache - wie verhält sich der Spannungsregler mit seinem Standby-Strom, wenn das Mikro ausgeschaltet ist - müssen Sie sich auch darum kümmern?
Wenn Sie nur herausfinden müssen, wann die Batterie leer ist (oder kurz davor warnen), müssen Sie die Spannung nicht direkt messen. Die Ausgangsspannung des Reglers fällt unter 3 V, bevor die Batterie ihre Mindestspannung erreicht. So könnte man die Versorgungsspannung des Mikrocontrollers messen.
Abhängig von seinen 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 141):
Der PIC hat eine interne Spannungsreferenz und kann seinen Wert messen (der 'FVR-Puffer', der in den Multiplexer geht). Es kann aber auch die Versorgungsspannung als Referenz für ADC-Messungen verwenden (der ADPREF-Wahlschalter auf der Oberseite).
Angesichts dessen kann man einfach die Spannungsreferenz in Bezug auf die Versorgungsspannung messen und als Ergebnis die Versorgungsspannung erhalten. Im Fall des 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, geht das ADC-Ergebnis über 699:
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 umwandeln, um die tatsächliche Versorgungsspannung anhand des ADC-Ergebnisses zu ermitteln.
Benötigen Sie wirklich den Linearregler? Das Betreiben des µC bei voller Batteriespannung macht die Sache viel einfacher. Außerdem verbrauchen der Regler und der µC auch im Energiesparmodus immer Strom, wodurch die Batterie kontinuierlich entladen wird. Schau dir die Datenblätter an und behalte das im Hinterkopf.
Da der ADC-Eingang (eines üblichen Sample-and-Hold-ADC, wie der in einem AVR-µC) nur dann Strom zieht, wenn tatsächlich ein Wert abgetastet wird, kann die transiente niedrige Eingangsimpedanz durch einfaches Hinzufügen eines Kondensators kompensiert werden:
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
Die maximale Abtastfrequenz wird natürlich auf diese Weise begrenzt, da der Kondensator Zeit braucht, um sich über den großen Widerstand wieder aufzuladen, bevor die nächste Abtastung erfolgt, aber ich gehe davon aus, dass Sie sowieso nicht mehr als beispielsweise einmal pro Sekunde messen werden.
Die zum Wiederaufladen des Kondensators erforderliche Zeit kann durch Variieren seiner Kapazität und/oder R1 eingestellt werden. Größeres R1 = weniger "Energieverlust" + geringere max. Abtastfrequenz. Kleinere Kapazitäten werden für einen gegebenen 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 erreichen.
Die Mindestkapazität hängt von der Ladungsmenge ab, die der ADC für ein Sample zieht, was wiederum durch die Kapazität des Sample-Puffers des ADC bestimmt wird. Bei AVR-Geräten meine ich mich zu erinnern, dass dieser Wert im Datenblatt angegeben ist. Für andere µCs kann ich das nicht sagen, aber die 1 µF im Diagramm werden wahrscheinlich auf jeden 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 Picofarad spezifiziert , also sollten ein paar Nanofarad für C1 ausreichen.
Siehe zum Beispiel die Diskussion hier .
s3c
jme
Andi aka
jme
Andi aka
jme
Andi aka
Nick Alexejew
Cerin
Andi aka
Mäusez
Andi aka
loeckx
Andi aka
loeckx
Andi aka