mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EEPROM-Problem


Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Schmittchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Schmittchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.