Hallo Leute! Ich habe ein Verständnisproblem bei dem Atmega 88. Es geht um den ext. Reset und den Brown-Out-Reset. Aus dem Datenblatt geht hervor(meiner Meinung nach!), dass die beiden Resetmöglichkeiten im Endeffekt das gleiche bewirken. (siehe Anhang :Auszug aus dem Datenblatt --- RESET-LOGIK). Problem: Nach einem ext. Reset werden alle Variablen richtig initialisiert, bzw. die Variablen sind nicht mit Müll gefüllt. Und das Programm läuft ohne Probleme weiter. Wird allerdings ein Brown-Out-Reset ausgelöst (Die Spannung = 0V, die int. Kapazitäten werden entladen!!!) steht nach der Initialisierung in den Variablen, die nicht explizit auf einen bestimmten Wert gesetzt wurden, nur Müll. Und das führt natürlich zu unerwünschten Effekten. Ok, man könnte sagen die Variablen sollten immer einen Default-Wert haben. Trotzdem bleibt es für mich erst mal ein Rätsel warum die RESET – Varianten sich so unterscheiden!?!
Sergej wrote: > Wird allerdings ein Brown-Out-Reset ausgelöst (Die Spannung = 0V, die > int. Kapazitäten werden entladen!!!) steht nach der Initialisierung in > den Variablen, die nicht explizit auf einen bestimmten Wert gesetzt > wurden, nur Müll. Ja, und? Variablen, die Du nicht initialisiert hast sind undefiniert. Das ist auf anderen Plattformen genau so. Und die Resets unterscheiden sich konzeptionell nicht (bzw. es wuerde mich sehr schwer wundern).
Hi Wenn du dir dein Bild ansiehst, wirst du bemerken, das alle Resetquellen in einer Leitung enden. Also ist die Wirkung identisch. Lediglich im MCUSR kann man die Resetquelle erkennen. Die IO-Register werden beim RESET auf einen Defaultwert (siehe Datenblatt) gesetzt. Der µC kennt keine Variablen. Nach dem Reset fängt er einfach von vorn an. Die Veriablen des Programms werden von dem selber initialisiert. > die nicht explizit auf einen bestimmten Wert gesetzt >wurden, nur Müll. Und das führt natürlich zu unerwünschten Effekten. Das ist Unsinn. Der Controller verhält sich nach jedem Reset identisch. Nur wenn man das MCUS-Register auswertet kann eine unterschiedliche Reaktion erzeugt werden. MfG Spess
@ Sergej Welchen Wert hat denn eine RAM-Zelle nach dem Einschalten, Reset und Brown-Out? Hast Du das mal erforscht?
auf www.avrfreaks.net gibts diverse Design Notes, hier: http://www.avrfreaks.net/index.php?module=Freaks%20Tools&func=viewItem&item_id=232 AVR Memory Contents After Sleep and Reset
Beim Reset per reset-Pin wird hier anscheinend die Betriebsspannung nicht oder nur kurz auf Null gebracht. Die Register zund Speicher behalten da eben noch ihre Information. Beim Brown-Out-Reset geht aber die Spannung ganz runter und da verlieren die Speicher / Register ihren Inhalt.
Wobei das SRAM den Inhalt auch noch bei weitaus geringerer Spannung beibehält, als der Brownout-Level suggeriert. Brownout heisst nur, dass der betreffende Spannungspegel unterschritten wurde. Wie weit tiefer das war geht daraus nicht hervor, aber wenns zu niedrig wird, dann wird abschliessend ein Power-Up Reset draus.
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.