-
-
Brown-Out-Detection
Black-Out: Totaler Stromausfall
=> Ist eigentlich keine Problem, da das ganze System sowieso neu startet.
Brown-Out: Ganz kurzer Einbruch der Stromversorgung.
=> Ist grosser Mist, weil das keiner mitbekommt.
Brown-Out-Detection bedeutet:
Immer wenn die Spannung am Mikrokontroller unter einen bestimmten Minimalwert abfällt, wird die RESET-Leitung auf Low gezogen. Also bekommt der Mikrokontroller auch diesen Sonderfall mit.
Die interne Variante im AVR leistet aber nur den RESET beim Unterschreiten der zulässigen Betriebsspannung im LAUFENDEN Betrieb.
Leider kommt es aber beim Ein- und Ausschalten des Systems zu jeweils einer kurzen Zeit mit undefinierten Pegeln am Bus. D. h. der Mikrokotroller führt zufällige Instruktionen aus, wenn währenddessen nicht RESET auf Low ist. Die interne Logik kann das nicht, also muss ein externer Baustein (z. B. TL7757) her.
Wenn also der Mikrokotroller beim Ein- oder Ausschalten nun zufällig die Instruktion zum Schreiben ins EEPROM ausführt, dann sind Daten weg.
Für alle die noch zweifeln:
Ich habs selber erlebt und ca. 10 h in die Fehlersuche meiner Software gesteckt. Da war aber kein Fehler, also habe ich mal das getan, was im Datenblatt steht und siehe da, Problem gelöst !!!
Man kann das auch sehr schön selber ausprobieren:
1. EEPROM voll machen mit z. B. "A5"
2. Strom an, Strom aus (richtig oft, d. h. ca. 50 mal, evtl öfter)
3. Ins EEPROM schauen, wenn das System einen Standard-RESET hat, dann ist bestimmt irgendwo ein Byte verändert.
=> Man hat das Problem live erlebt.
Hier steht übrigens wie und warum man das alles macht:
http://www.atmel.com/dyn/resources/p...ts/DOC1051.PDF
Trotz der ganzen Mühe ist natürlich ein Stromausfall während eines Schreibvorganges immer noch fatal, hier hilft nur eine Art gepuffertes Filesystem im EEPROM.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen