Forum: Mikrocontroller und Digitale Elektronik "Geschalteter" Spannungsteiler


von Tom (Gast)


Lesenswert?

Hallo,

ich möchte in einem Low Power Device die Batteriespannung überwachen. 
Ursprünglich wollte ich den netten Trick mit V_REV = VCC und ADMUX = 
V_BG machen. Nur leider kann man beim Tiny13A die interne Referenz nicht 
als Eingangskanal auswählen. X-(
Also läuft es jetzt über einen Spannungsteiler. Damit der nicht zu viel 
Strom zieht (der Stromverbrauch liegt fast eine Dekade über dem Strom 
des AVR im PowerDown), würde ich ihn gerne über einen Pin mit der 
Batteriespannung versorgen (AVR hängt direkt an einer CR2032).
Meine frage nun an die Experten: ist das hinreichend genau, oder geht 
intern im AVR Spannung/Strom verloren (und die Toleranzen sind so groß, 
dass man jeden AVR einzeln vermessen und im EEPROM einen korrekturwert 
speichern müsste)?

Danke
--Tom

von Stefan P. (form)


Angehängte Dateien:

Lesenswert?

Du meinst so?
Das klappt super.

von MaWin (Gast)


Lesenswert?

Das ist hinreichend genau, der Spannungsteiler liegt ja so um 10k und 
auf 1% kommt es nicht an.

von WehOhWeh (Gast)


Lesenswert?

ich mach das oft so:
Ein 5V-Toleranter Port stellt den Massebezug für den Spannungsteiler zur 
Verfügung, ein weiterer dient als Analogeingang.
Soll der Spannungsteiler weggeschaltet werden, stellt man beide Ports 
auf hochohmig, dann fließt nur der Leckstrom durch die Ports, welcher 
gering ist. Pulls ausschalten nicht vergessen.

Wichitg:
Beide Ports müssen die Batteriespannung verkraften - sonst raucht der µC 
ab oder die Sache zieht Strom. PICs und STM32 haben üblicherweise ein 
paar 5V-tolerante Analogpins, damit geht das. Atmels sicher auch.

Alternativ:
Der Spannungsteiler wird mit N-Kanal-FET gegen Masse geschaltet, wenn 
gemessen werden soll. Auch hier: der Port muss die Batteriespannung 
aushalten.
Vorteil: man kann den Teiler niederohmiger machen.

Geht das nicht, muss man die Batteriespannung von oben mit NFET + PFET 
auf den Teiler schalten.

von Flo (Gast)


Lesenswert?

Viel wichtiger bei der ganzen Sache ist aber die Kalibrierung der 
internen Spannungsreferenz!!! Dies kannst du beispielsweise direkt nach 
dem Programmieren beim ersten "Aufstarten" des Controllers bei einer 
bekannten Versorgungsspannung machen.

von Tom (Gast)


Lesenswert?

Ziemlich genau so wie Stefan P. es beschrieben hat habe ich es vor.

Danke für die Rückmeldungen!

von Hermann (Gast)


Lesenswert?

Flo schrieb:
> Viel wichtiger bei der ganzen Sache ist aber die Kalibrierung der
> internen Spannungsreferenz!!!

Vref ist außerdem abhängig von Vcc. Da du keine konstante Batterie-Spg 
hast, solltest du die Kalibrierung bei der Batt-Spg machen, bei der du 
einen genauen Wert haben willst.
Ich habe mal bei einem Tiny861 folgende Werte gemessen:
Vref=2,575@Vcc=2,7V und Vref=2,521V@Vcc=5,5V
Nicht so dramatisch, aber ca. 2%

von Flo (Gast)


Lesenswert?

Ich habe mir das Datenblatt des ATtiny13 auch grad mal angeschaut. Ich 
hatte die Kalibrierung bei einem ATtiny84A gemacht, der ist da bedeutend 
toleranter was Temperatur und UBat angeht. Laut Datenblatt sind das beim 
tiny13 bei 25° im Bereich von 2-5V allein schon 2% wie bei dir Hermann.
Demzufolge muss ich dir zustimmen das es wohl das beste ist in dem 
"interessanten" Bereich zu kalibrieren.

von Rechtsverdreher (Gast)


Lesenswert?

Stefan P. schrieb:
> Du meinst so?
> Das klappt super.

Ich würde das ganze etwas hochohmiger gestalten.

Der Port-Pin hat etwa 30-50 Ohm (temperaturabhängig+Versorgungsabhängig) 
Innenwiderstand.

Bei 4K Last fehlen da schon 30-60mV am Port-Pin.

Gruß Anja

von Hermann (Gast)


Lesenswert?

Flo schrieb:
> Ich habe mir das Datenblatt des ATtiny13 auch grad mal angeschaut

Das habe ich auch gerade mal nachgeholt - gefunden habe ich nur 
Diagramme unter Typical Characteristcs. Jetzt bin sehr erstaunt: die 
Bandgap scheint ja bei jedem µP anders zu sein.
Tiny13 hat eine fallende Chakteristik, Tiny84 fast konstant und Tiny861 
eine steigende Charakteristik. Ich glaube die von mir angegebene Messung 
war bei einem Tiny85, da passt das Datenblatt besser zur Messung. Ich 
dachte, die würden sich alle gleich verhalten und habe den Kommentar in 
meiner Kalibrier-Routine nicht angepasst.
Das gleiche gilt auch bei der Temperaturabängikeit:
Tiny84 und 85 steigend und Tiny13 fallend und Tiny 861 keine Angabe. Und 
das noch bei jedem Vcc anders (Tiny85).
Da der Vref-Wert sowieso um ±10% schwankt, bleibt einem eine 
individuelle Messung nicht erspart.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.