Ich habe mal eine Frage zu der Problematik mit dem EEPROM, das bei einigen AVRs ohne Reset-Controller auftreten kann. Betrifft dies eigentlich alle Typen oder gibt es auch AVRs, bei denen der Inhalt des EEPROMs ohne Reset-Controller beim Ein- und Ausschalten der Spannungsversorgung sicher ist? Danke für die Auskunft. Gruss, Peter
Das betrifft die AVR-Typen, die keine Brownoutdetection/ Brownoutresetcircuit haben (steht im Datenblatt). Z.B. die neuen mega-Typen (und z.B. der 4433) haben diesen und sind deshalb sicher. Schmittchen.
Hallo Schmittchen, da muss ich nun aber nochmal nachfragen. Als "brown out" wird doch die Datenkorruption im RAM des Controllers beschrieben, die bei einem kurzzeitigen Spannungseinbruch auftreten kann. Das ist jedoch nicht das, was ich meine. Ich interessiere mich für die Problematik der Datenkorruption im internen EEPROM, die beim Einschalten der Versorgungsspannung bei gewissen (?) AVRs auftreten kann, wie z.B. bei dem AT90S1200. Hier gibt es wohl einen Zusammenhang zwischen dem Anstieg der Versorgungsspannung in Zusammenhang mit dem RESET-Eingang. Ein separater Controller, der die Spannung an RESET erst dann hochschaltet wenn die Versorgungsspannung sauber steht, verhindert dies. Ich hätte nun gerne gewusst, welche Typen nun von dieser Problematik betroffen sind. Danke schon mal für die Auskünfte! Gruss, Peter
Atmel selbst weist an mehreren Stellen ausdrücklich darauf hin, daß aus Sicherheitsgründen die Adresse 0 im EEPROM nicht zur Datenspeicherung verwendet werden soll. Die Brown Out Detektion in der AT90S Familie, soweit bei einigen Prozessoren bereits implementiert ist, arbeitet wohl nicht immer ganz zuverlässig. Leider werden gelegentlich auch andere Adressen als 0 mit willkürlichen Daten überschrieben. Dieser Umstand allerdings recht selten auf, und auch nur wenn die Schaltung deutlich jenseits der normalen Spezifikationen betrieben wird.
Also es muss doch schon etwas mehr kaputt gehen können als nur die Adresse 0, das wäre ja recht simpel zu umgehen. Wenn ich z.B. die Schaltungsentwürfe von Alberto Ricci Bitti (http://www.riccibitti.com/) sehe, so treibt er ja einen ganz schönen Aufwand um diese Problematik zu umgehen. Und dies sehrwahrscheinlich nicht ohne Grund und bestimmt auch nicht nur wegen der Adresse 0.
Nach meiner Einschätzung entsteht das Reset-Problem nicht beim Ein- sondern beim Ausschalten, wenn der Prozessor unkontrolliert 'spinnt', bis die Versorgungsspannung nahe 0V abgesunken ist. Ein schnelles Abschalten der Versorgungsspannung könnte m.E. Fehler im EEPROM vermeiden, behaupte ich. Michael
Dieses unkontrollierte "Spinnen" soll ja die Brown Out Logik ja verhindern, was sie zumindest bei der 90S Familie nicht immer sicher leistet. Bei den neueren MEGA8 & MEGA128 Prozessoren ist das Verhalten nach bisherigen Tests bedeutend besser.
Ein Brown-out ist ein kurzes_ _Absinken der Versorgungsspannung. Nicht "tief" und lange genug, um sauber einen Reset auszulösen - mehr bedeutet Brown-out nicht. Das führt bei den dafür anfälligen AVRs zu undefinierbarem Verhalten. Mikki hats ja schon gesagt, daß das bei den AVRs auch zu korruptem EEPROM führen kann. @Michael: > Ein schnelles Abschalten der Versorgungsspannung könnte m.E. Fehler im EEPROM vermeiden, behaupte ich. Hm, da man aber ja gerne Kondensatoren zum Stabilisieren/Stützen der Spannung einbaut, kann man nicht schnell abschalten. Resetcontroller rein (z.B. TL7705) und gut is. @Mikki: > Bei den neueren MEGA8 & MEGA128 Prozessoren ist das Verhalten nach bisherigen Tests bedeutend besser. Heißt das, du hast bei diesen noch kein verändertes EEPROM beobachtet? Schmittchen.
@Schmittchen Die interne Logik der AVR Prozessoren soll ja den Reset-Controller überflüssig machen. Beim Mega 8 & 128 kommen ungültige EEPROM Inhalte unter normalen Fehlerbedingungen nach meinen bisherigen Erfahrungen fast nicht mehr vor. Diese Fehler wären aber in der bisher festgestellten Häufigkeit auch bei externen Speichersystemen im Bereich des normalen.
Die älteren AVR haben zum Reset nur einen Timer und keine Spannungsüberwachung. Deshalb könne diese bei Unterspannung (z.B. bei Batteriewechsel) verrückt spielen und beliebige EEPROM-Zellen plattmachen. Erst ein externer Reset-IC kann dies verhindern, indem er bei Unterspannung den AVR dauerhaft im Reset hält. Die neueren AVR haben so einen Unterspannungsreset schon eingebaut, aber deaktiviert. D.h. sie sind so lange nicht die Spur besser, bis man die Brown-Out-Fuse aktiviert hat. Leider verbrauche sie dann erheblich mehr Strom im Power-Down-Mode. Deshalb kann auch dort der Einsatz externer Rest-ICs sinnvoll sein, die z.B. unter 1µA Stromverbrauch haben. Peter
@Schmittchen. Bei Batteriebetrieb mit Abblockkondensator (100-470nF) und Schalter in Vcc-Zuleitung könnte es ohne ext. Reset funktionieren. Ansonsten völlig klar: immer Reset ergänzen oder internen verwenden ! @Peter: welchen Rest eines ICs verwendest Du, der nur 1uA braucht (ironisch). Kannst Du einen besseren bzw. preiswerteren Typ als MC33164 vorschlagen; für die Teile mit Maxim-aler Leistung bin ich zu geizig. Michael
Also ich habe zwar bis jetzt keine eindeutige Antwort auf meine Frage erhalten, aber wenn ich nun mal ein Resümee aus den Postings oben ziehen darf, so ist der Inhalt des EEPROM nur dann wirklich sicher wenn man einen externen Reset-Controller verwendet, egal bei welchem Typ von AVR. Wie sieht es denn mit Alternativen aus, die statt des teuren Controllers z.B. nur 2 Transistoren und ein paar Widerstände verwenden? Sind die auch sicher? Peter
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.