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
Das ist hinreichend genau, der Spannungsteiler liegt ja so um 10k und auf 1% kommt es nicht an.
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.
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.
Ziemlich genau so wie Stefan P. es beschrieben hat habe ich es vor. Danke für die Rückmeldungen!
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%
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.