PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wert speichern bei Spannungsverlust



brezelmann01
17.08.2008, 17:42
Hi!

Ich habe einen Zähler, der bei einem externen Interrupt hochgezählt wird. Nun möchte ich, das dieser Zählerstand bei Spannungsverlust des AT90 gespeichert wird und bei Rückkehr der Spannung der Zählerstand zurückgelesen wird.
Kann mir da jemand die entsprechenden Befehle für sagen? Gibt es speziell für den Spannungsverlust einen Befehl? Möchte sonst den Speicher nicht unnötig alle x Sekunden beschreiben

DANKE

zerush
17.08.2008, 18:17
Also mit nem großen Elko oder Goldcap könntest du Vcc absichern. Dann ne Diode so daran, dass der Strom nur noch zu Vcc kann und nicht noch den ganzen anderen Kram versorgt.

Dann eine Leitung der Versorgungsspannung (also auf der von der Diode abgeschirmten Seite) an einen Input-Pin.
Sobald dieser auf Low fällt (evtl. ext. Interrupt), speicherst du schnell deinen aktuellen Wert ins EEPROM.

Wie groß der Kondensator nun sein muss, müsste man sich evtl mal ausrechnen, muss ja nicht lange die Spannung halten.

mfg,
Thomas

brezelmann01
17.08.2008, 19:06
hm. Also gibt es keinen "fertigen" Befehl, der dieses Vorhaben umsetzt? Eigentlich müßte doch selbst ohne Pufferung die Zeit bei Spg-Verlust noch zum Rückschreiben der Daten reichen?! Das sollte doch im 2stelligen millisekunden bereich liegen?!

fhs
17.08.2008, 19:11
Hi,

einen "fertigen" Befehl dafür gibt es nicht. Ich würde die schon von Thomas genannte Art der Spannungsversorgung einsetzen und mit Hilfe des Analogkomparators oder eines A/D-Wandlers überprüfen, ob eine Situation eintritt, die eine Datenrettung erforderlich macht. Auch bedenken, ob man dann noch den internen BOD nutzen möchte und wie die Referenzspannung generiert wird.

Gruß

Fred

zerush
17.08.2008, 19:13
Naja aber ein Spannungsverlust ist nunmal ein Spannungsverlust. Und ganz ohne Pufferung ist dann nunmal sofort jegliche Spannung weg.

Es sei denn du meinst, wenn ein Akku langsam seine Spannung verliert. Dann ist das natürlich was anderes. Dann kannst du ja einfach mit nem ADC messen, wann dein unteres "Limit" erreicht ist...

Aber ich habe es eher so verstanden, also würde auf einmal die Stromversorgung gekappt?

P.S.: Beim Starten kannst du jedoch erkennen, ob die Brow-Out-Detection den Reset ausgelöst hast. Dann weißt du, dass es einen Spannungsverlust gab, und kannst dann den gesicherten Wert wieder laden.

MSN
17.08.2008, 19:15
naja woher soll der controller denn wissen das die spannung weg is bis sie weg is?
edit: da warn nen paar leute schneller -.-

brezelmann01
17.08.2008, 19:17
Ahhh. Die Brown out detection ist ein guter Hinweis. Hab ich schon paar mal gelesen gehabt. Werde mich damit mal näher beschäftigen...