Hi. Ich bin grade dabei ein Steuermodul mit AVR zu bauen. Das Steuermodul hat eine automatische Kalibrierungsfunktion die von Zeit zu Zeit ausgeführt wird. Ich möchte den Kalibrierungswert aber nicht mehr ständig in den eeprom schreiben, da er sich sonst zu viel abnutzt. Der Wert soll jetzt nur noch im RAM gespeichert werden, und erst beim abschalten der Versorgungsspannung im eeprom gesichert werden. Das bedeutet, der Mikrocontroller muss den Wegfall der Versorgungsspannung erkennen und "in den letzten Atemzügen" den Wert sichern. Wie macht man sowas üblicherweise? Ich habe mir mal eine Schaltung überlegt, mit der ich das machen könnte. Aber reicht diese Schaltung aus?
> Wie macht man sowas üblicherweise? Du nimmst den AD-Wandler oder den Komparator und ermittelst, wann deine Spannung unter z.B. 4,5V fällt. Dann hurtig speichern, denn bei 2,7V kommt der BrownOut. Der Komparator ist hier von Vorteil, weil er einen Interrupt auslösen kann. Aber sowohl beim Komparator wie beim ADC solltest du eine geeignete Referenzspannung verwenden. > Such mal nach Brown-Out Detection Lies mal die Aufgabenstellung... :-o
> Das Steuermodul hat eine automatische Kalibrierungsfunktion die > von Zeit zu Zeit ausgeführt wird. Von welchen Zeitspannen reden wir?
Ich hab das so ähnlich in einer Schaltung gelößt. Allerdings würde ich den C vor dem Festspannungsregler noch etwas größer machen. Je größer der ist und je weniger Last dran hängt, um so länger hält der µC durch. Die Dedektion habe ich nur über einen Spannungsteiler am µC angeschlossen. Sofern die 12V haöbwegs stabil sind, reicht das ja. Das Programm bekommt den Spannungsabfall über einen Interrupt eines Komparatoreinganges mit. In der ISR schalte ich als erstes alle Verbraucher ab (LED, LCD, Relais etc). Dann schreibe ich die Daten (bei mir sogar in einen I2C-EEPROM). Die 5V liegen noch ca. 1 Sekunde an, bevor der µC seinen Geist aufgibt. Brown-Out geht in diesem Falle nicht, da diese Funktion erst anspringt, wenn es schon zu spät ist... Gruß Sven
Karl Heinz hat Recht, das EEPROM kann min. 100.000 mal umprogrammiert werden. Multipliziere das mal der dem Zeitabstand der Kalibrierungen.... Weitere Möglichkeit das EEPROM zu "schonen": Vor dem Schreiben prüfen, ob nicht bereits der Wert "drinsteht"- oder prüfen ob das Schreiben erfolgreich war, und im Fehlerfall auf Ersatzzellen umschalten. (Funktioniert bestens!) Gruß James
Oder doch besser vor dem Uregler: Die hier würde z.B. bei 10V einen Interrupt auslösen
1 | 12V------o------o--------[Ureg]---- 5V |
2 | | | |
3 | | | |
4 | - - |
5 | 7,5k | | | | |
6 | | | | | |
7 | - - |
8 | | | Vref |
9 | | o--------------|\ |
10 | | | | >-- |
11 | o------)--------------|/ |
12 | | | Vpowerfail |
13 | - ,-- |
14 | 2,5k | | ^ 2,5V |
15 | | | | |
16 | - | |
17 | | | |
18 | GND------o------o------- |
Wir reden von 10 Minuten Im Moment führe ich die Kalibrierungsfunktion alle 10 Minuten aus. Natürlich könnte ich auch alles viel genauer aufbauen und mit weniger Toleranz arbeiten, was aber mit Mehraufwand verbunden ist. Ich könnte auch hingehen und Kalibrierungswert nicht speichern und mit einen fest vorgegebenen Wert starten. Und wenn dann nach ein paar Minuten genug Daten da sind, den exakten Wert berechnen. Ich wäre am Anfang dann halt etwas ungenauer. Wenn ich mir den letzten Wert speicher bin ich gleich wieder relativ genau. Im Moment schreibe ich sofort in den eeprom, deswegen mache ich mir Sorgen, ob ich ihn nicht zu stark beanspruche.
Wenn du den EEPROM alle 10 minuten beschreibst, wird er ca 19 Jahre durchhalten.
Uhu Uhuhu schrieb: > Wenn du den EEPROM alle 10 minuten beschreibst, wird er ca 19 /Jahre/ > durchhalten. (Hast du das 24/7/52 gerechnet?) Wobei das die vom Hersteller garantierte Mindestbetriebsdauer ist. Meist halten die Dinger länger.
Karl heinz Buchegger schrieb: > Uhu Uhuhu schrieb: >> Wenn du den EEPROM alle 10 minuten beschreibst, wird er ca 19 /Jahre/ >> durchhalten. > > (Hast du das 24/7/52 gerechnet?) Sorry, hab mich um einen Faktor 10 verpeilt. Es sind nur 1,9 Jahre :-(
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.