Moin allerseits,
helft mir mal bitte beim Denken bzw. sagt mir, ob ich einen Denkfehler
habe:
Ein ATMega328P soll von einer Lithium-Zelle (direkt) versorgt werden.
Ich würde gern die Batteriespannung messen, um bei Unterspannung
abzuschalten (bzw. in den tiefsten Schlafmodus zu wechseln - 0,2mA ist
gering genug bei einem 1700mAh-Akku).
Klassischerweise macht man das per Spannungsteiler gegen die interne
Referenz. Aber dazu muss ich für andere Messungen die Referenz hin und
her schalten (und jeweils die erste Messung verwerfen) außerdem zwei
Widerstände bestücken, die permanent Strom aus dem Akku ziehen -> geht,
aber nicht so 100% schön.
Jetzt lese ich im Datenblatt des AVR: Mit MUX[3:0] == 1110 kann ich die
interne Referenz von 1,1V (+-10%) messen. Wenn ich als Referenzspannung
weiterhin die Betriebsspannung = Batteriespannung behalte, müsste der
Messwert doch steigen, wenn die Batteriespannung fällt, oder?
Von ca.
bei voll geladenem Akku und angeschlossenem Ladegerät auf
bei leerem Akku (und zu wenig Restspannung für den LDO-Regler, der
andere Spannungsteile mit 3V versorgt)?
Klappt das so (mit Kalibrierung auf die tatsächliche Referenzspannung)?
Hat das hier schonmal jemand erfolgreich umgesetzt? Und wenn nicht, wo
liegt mein Denkfehler?
Vielen Dank und viele Grüße,
Arno
Arno schrieb:> Ich würde gern die Batteriespannung messen, um bei Unterspannung> abzuschalten (bzw. in den tiefsten Schlafmodus zu wechseln - 0,2mA ist> gering genug bei einem 1700mAh-Akku).
Ist denn das erforderlich? Kann man dafuer nicht einfach den Brownout
verwenden?
Arno schrieb:> Klappt das so (mit Kalibrierung auf die tatsächliche Referenzspannung)?
Ja. Das ist das Standardverfahren, um die Betriebsspannung gegen die
interne Referenz zu messen. Geht aber nicht bei allen AVR, sondern nur
bei denen, die Vcc auf einen Eingang des ADC-MUX aufgelegt haben.
Arno schrieb:> Klappt das so (mit Kalibrierung auf die tatsächliche Referenzspannung)?> Hat das hier schonmal jemand erfolgreich umgesetzt? Und wenn nicht, wo> liegt mein Denkfehler?
Ich würde die Berechnung anders durchziehen.
Mit einem einstellbaren Netzgerät den benötigten Spannungsbereich
durchfahren.
Möglichst weit auseinander, je einen Punkt wählen.
Steigung und Offset im EEPROM speichern.
Beim messen, die Geradengleichung verwenden.
Als Temperaturkorrektiv, könnte man dann auch noch den inneren
Temperatursensor verwenden.
Axel S. schrieb:> Geht aber nicht bei allen AVR, sondern nur> bei denen, die Vcc auf einen Eingang des ADC-MUX aufgelegt haben.
Nein. (A)Vcc ist die Referenz und gemessen wird die Bandgapspannung von
1,1V beim 328er.
Michael W. schrieb:> Arno schrieb:>> Ich würde gern die Batteriespannung messen, um bei Unterspannung>> abzuschalten (bzw. in den tiefsten Schlafmodus zu wechseln - 0,2mA ist>> gering genug bei einem 1700mAh-Akku).>> Ist denn das erforderlich? Kann man dafuer nicht einfach den Brownout> verwenden?
Ja (in meinem Fall), denn es soll nicht der Controller einfach nur in
Reset gehen, sondern diverse andere Hardware kontrolliert abgeschaltet
werden.
Axel S. schrieb:> Arno schrieb:>> Klappt das so (mit Kalibrierung auf die tatsächliche Referenzspannung)?>> Ja. Das ist das Standardverfahren, um die Betriebsspannung gegen die> interne Referenz zu messen. Geht aber nicht bei allen AVR, sondern nur> bei denen, die Vcc auf einen Eingang des ADC-MUX aufgelegt haben.
Danke (auch allen anderen). Du meinst, V_BG (interne Referenz) auf einem
Eingang des ADC-MUX, nehme ich an, nicht Vcc?
Dann war ich bisher mit Spannungsteiler etwas "konventionell" unterwegs
:) Man lernt ja (zum Glück) nie aus.
MfG,
Arno
Arno schrieb:> 1.1/4.2 * 1024 = 268> 1.1/3.3 * 1024 = 341
genau, und für die Zwecke reicht eine Einpunktkalibrierung.
Ich mach das immer so:
1. Kalibrierspannung anlegen z.B 3.3V => Sollwert 330 (Int in 10mV
Schritten)
2. 330 * ADC_3.3V = 112530 => im EEProm speichern
kalibrieren über Taster/Menü/Pin/... auslösen (was man gerade so hat)
3. Spannung bestimmen: 112530 / ADC_4.2V = 420
Sascha
Weiter gedacht: Wahrscheinlich kann ich sogar automatisch kalibrieren -
mit der Annahme V_BG = 1,25V anfangen und jedes Mal wenn die Messung
mehr als 4,2V ergibt, auf 4,2V nachkalibrieren. Denn der Akku wird über
einen externen MCP73831 geladen, der die 4,2V auch erreicht. Zumindest
bisher, ich hab noch nicht die volle Schaltung in Betrieb mit
gleichzeitigem Laden getestet. Und was das Lade-IC ausgibt, wenn kein
Akku angeschlossen ist, muss ich dazu natürlich auch im Datenblatt
nachsehen und messen.
Genauer als die Konstantspannung des Lade-IC braucht die
Unterspannungsabschaltung (bei 3,3V) aber nicht zu werden.
MfG, Arno
Arno schrieb:> Genauer als die Konstantspannung des Lade-IC braucht die> Unterspannungsabschaltung (bei 3,3V) aber nicht zu werden.
Wenn dir's nur darauf ankommt, musst du auch nichts kalibrieren. Dem
Akku ist das ziemlisch wurscht, ob du nun schon bei 3,3 V oder erst bei
2,7 V abschaltest. Die Energiemenge zwischen beiden Potenzialen ist
sowieso nur sehr gering, und tief entladen ist beides auch noch nicht.
Jörg W. schrieb:> Arno schrieb:>> Genauer als die Konstantspannung des Lade-IC braucht die>> Unterspannungsabschaltung (bei 3,3V) aber nicht zu werden.>> Wenn dir's nur darauf ankommt, musst du auch nichts kalibrieren. Dem> Akku ist das ziemlisch wurscht, ob du nun schon bei 3,3 V oder erst bei> 2,7 V abschaltest. Die Energiemenge zwischen beiden Potenzialen ist> sowieso nur sehr gering, und tief entladen ist beides auch noch nicht.
Naja, Unterspannungsabschaltung nicht nur für den Akku, sondern auch für
die Schaltung - "kurz davor" (noch zu definieren) will ich den Benutzer
warnen (LED blinkt statt zu leuchten) und der ESP8266 hinter dem 3V-LDO
soll es auch noch schaffen, sich vom WLAN abzumelden. 2,7V am Akku wird
dafür zu wenig sein.
Aber ja, insgesamt ist das recht unkritisch - der Akku hat auch eine
integrierte Schutzschaltung und es sind keine Menschenleben gefährdet,
wenn der ESP sich nicht sauber vom WLAN abmeldet ;)
MfG, Arno
Jörg W. schrieb:> Dem> Akku ist das ziemlisch wurscht, ob du nun schon bei 3,3 V oder erst bei> 2,7 V abschaltest. Die Energiemenge zwischen beiden Potenzialen ist> sowieso nur sehr gering, und tief entladen ist beides auch noch nicht.
Diese Aussage so pauschal streite ich ab, schaue Dir den Anhang an.
Diese Panasonic LiIon 18650 spuckt von 3,3 bis 3,0 Volt noch rund 600mAh
aus, gut 20% ihrer Gesamtkapazität!
Bei anderen Zellen mit höherem Innenwiderstand und vielen Zyklen sieht
das anders aus.
Die Abschaltschwelle sollte man von der Last abhängig definieren, bei
geringem Strom früher weg als bei hoher Last. Wenn man langjährig Freude
haben will, bleibt man von den Endpunkten weg.
Es sind noch einige DECT-Telefone in Betrieb, die nach über 10 Jahren
noch 50% Akkukapazität haben. Die laden nicht bis Anschlag voll und
schalten frühzeitig aus, die damaligen Kollegen wussten, was sie tun.
Manfred schrieb:> Die laden nicht bis Anschlag voll und> schalten frühzeitig aus, die damaligen Kollegen wussten, was sie tun.
Die hatten aber auch nicht damit zu kämpfen, daß 10 Minuten mehr
Akkulaufzeit ein entscheidendes Verkaufsargument waren.
Arno schrieb:> der ESP8266 hinter dem 3V-LDO soll es auch noch schaffen, sich vom WLAN
abzumelden.
Welchen Typ LDO, wieviel Strom?
Beim MCP1703 und 200mA Last sind etwa 600mV Dropout zu erwarten, das
wird verflucht eng bis zu geht nicht.
Versuchsaufbau gemacht und getestet?
Thomas E. schrieb:>> Die laden nicht bis Anschlag voll und>> schalten frühzeitig aus, die damaligen Kollegen wussten, was sie tun.> Die hatten aber auch nicht damit zu kämpfen, daß 10 Minuten mehr> Akkulaufzeit ein entscheidendes Verkaufsargument waren.
Das waren Geräte für den kommerziellen Bereich, einfaches LC-Display
monochrom und um 50h standby / 5h telefonieren.
Nachfolger haben ein Farbdisplay, können doppelt so lange Standby - aber
die Akkus leben nicht mehr annähernd so lange.
Manfred schrieb:> Diese Aussage so pauschal streite ich ab, schaue Dir den Anhang an.> Diese Panasonic LiIon 18650 spuckt von 3,3 bis 3,0 Volt noch rund 600mAh> aus, gut 20% ihrer Gesamtkapazität!
OK, die 3,3 V stammten vom TE – ich hätte die Grenze auch eher bei 3,0 V
angesetzt. Deine Messung bestätigt das.
Wobei das meiner Erinnerung nach nur ein Problem ist beim Umschalten der
Referenz. Wenn man ausschließlich diesen einen Kanal und nur mit einer
Referenz misst, bleiben die Werte stabil.
Auch die Umschaltung kann man aber in den Griff bekommen. Habe ein
Gerät, welches regelmäßig die Spannung eines AD8319 erfasst und
gelegentlich auf Batteriespannungsmessung umschaltet, funktioniert
problemlos.
Jörg W. schrieb:> Wobei das meiner Erinnerung nach nur ein Problem ist beim Umschalten der> Referenz.
Nö, die Referenz bleibt VCC. Das Problem tritt auf beim Umschalten des
MUX.
Die 1,1V sind so hochohmig, daß das Umladen des S&H Kondensators sehr
lange dauert. Man sieht deutlich, daß das Ergebnis sich vom Wert des
vorher ausgewählten Eingangs annähert.
Peter D. schrieb:> Jörg W. schrieb:>> Wobei das meiner Erinnerung nach nur ein Problem ist beim Umschalten der>> Referenz.>> Nö, die Referenz bleibt VCC. Das Problem tritt auf beim Umschalten des> MUX.> Die 1,1V sind so hochohmig, daß das Umladen des S&H Kondensators sehr> lange dauert. Man sieht deutlich, daß das Ergebnis sich vom Wert des> vorher ausgewählten Eingangs annähert.
Danke für den Hinweis - ich mittele sowieso 16 Werte, dann schmeiße ich
für die Batteriespannungsmessung in Zukunft die ersten acht weg.
Alles weitere läuft sehr weit weg von meiner eigentlichen Frage, aber
die ist ja beantwortet :) nur bitte keine Aufregung, dass die Infos
nicht alle im ersten Post enthalten waren - das war alles nicht wirklich
relevant für die Frage...
Manfred schrieb:> Arno schrieb:>> der ESP8266 hinter dem 3V-LDO soll es auch noch schaffen, sich vom WLAN> abzumelden.>> Welchen Typ LDO, wieviel Strom?
NCV8161 bei durchschnittlich ca. 100mA, Spitzen bis ~300mA (ESP8266
eben, sonst nichts an der 3V-Schiene). Laut Datenblatt hat der in der
1,8V-Version rund 300mV Dropout bei 300mA, in der 3,3V-Version unter
200mV.
> Versuchsaufbau gemacht und getestet?
Versuchsaufbau (will sagen: Eine testweise bestückte Platine) habe ich.
Test läuft noch nicht, bisher nehme ich den AVR in Betrieb, der den
Spannungsregler überhaupt erst einschalten soll. Ruhestrom aktuell
250µA, wobei ich auch noch einen
Batteriespannungsmessungs-Spannungsteiler drauf habe, den ich ja
offenbar nicht brauche :)
Jörg W. schrieb:> Manfred schrieb:>> Diese Aussage so pauschal streite ich ab, schaue Dir den Anhang an.>> Diese Panasonic LiIon 18650 spuckt von 3,3 bis 3,0 Volt noch rund 600mAh>> aus, gut 20% ihrer Gesamtkapazität!>> OK, die 3,3 V stammten vom TE – ich hätte die Grenze auch eher bei 3,0 V> angesetzt. Deine Messung bestätigt das.
Das ist durchaus OK, dann kann man das Gerät ~12-15h nutzen, bis es
"Akku leer" meldet, und hat dann immer noch ~1000h Zeit, es an Strom
anzuschließen, ohne den Akku unnötig tief zu entladen - und es ist genug
Restladung im Akku, regelmäßig die Akkuspannung zu prüfen und zu merken,
wenn es wieder aufgeladen wird. Aber viel über 3,3V sollte ich dann
tatsächlich nicht abschalten...
(Der Akku ist ein 103058 von "Cellevia Batteries", den es bei TME gibt:
https://www.tme.eu/en/details/accu-lp103058_cl/rechargeable-batteries/cellevia-batteries/lp103058/
- ich hab mich schwer getan, einen Akku mit Schutzschaltung mit ca.
30-35mm Breite, maximal 10mm Dicke und bis zu 65mm Länge zu finden, bei
dem ich auch in drei-vier-fünf Jahren noch eine Chance hab, ihn zu
kaufen - wäre froh, wenn es ein richtiges Datenblatt dazu gäbe, ist aber
nicht drin...)
MfG, Arno