EEprom Probleme

Gast #650089
Lesenswert?

EEARl/H nach Schreibvorgang auf letzte Adresse im EE setzen, Resetzeit 
auf längstmögliche Zeit einstellen, internen RC-Oscil.verwenden, 
Resetbaustein einsetzen, Durchdrehen, Controllerfamilie wechseln, 
Brownout in den Fuses auf höchsten Wert setzen ;-), I2C EE verwenden 
bzw. Uhrenbaustein mit Bat.und Ram usw. Atmel nervt.....


SG Josy
Gast #650362
Lesenswert?

Das EEprom der AVRs reagiert sehr empfindlich auf eine langsam 
abfallenden Spannungsversorgung beim AUSschalten.

Das EEprom scheint nach dem einschalten/(reset?) erstmal "abgekoppelt" 
zu sein. Bestehende daten werden dann auch nicht bei langsam 
"absterbender" Schaltung verändert. Aber: Bereits ein einziger 
lesezugriff reicht um die daten beim mächten ausschalten in gefahr zu 
bringen. Habe das mehrfach nach spätestens 50 mal ausschalten gesehen.

Um das zu verhindern muss man den "Brown out detector" einschalten (low 
Fuse BODEN),
und eine möglichst hohe schaltschwelle einstellen (low Fuse BODLEVEL).
Details dazu z.b. Datasheet Mega8 Seite 38.

Habe "BODEN" und "BODLEVEL" auf 0 ("programmed") gesetzt.
Dadurch bekommt der AVR unterhalb von 4V einen dauerhaften reset.
Damit waren auch nach über 150x ausschalten keine veränderungen 
festsellbar.

Atmel gibt auch selbst im datasheet einen hinweis darauf unter 
"Preventing EEPROM Corruption"... habe auber auch eine weile gebraucht 
um den Bug zu finden.
Gast #650429
Lesenswert?

Danke für die Antworten. Werde bei kritischen Werten eher ein externes 
EEprom nehmen. Bieten auch mehr Speicherplatz und sind schnell 
ausgetauscht.
So kann man Konfigurationen auf andere Systeme schnell übertragen und 
das
Klapptop kann zu Hause bleiben.


Gruß Josy
Gast #650445
Lesenswert?

Schau Dir dazu mal den AT28C64B mit "Software Data Protection 
Enable/Disable Algorithm" an.
Ist etwas umstaendlich da man beide Sequenzen bei jedem Schreibvorgang 
braucht (disable-Daten schreiben-enable), aber dafuer sicher. Ich hab 
das Teil im Einsatz und es funktioniert reibungslos solange man nicht 
genau waehrend des Schreibvorganges den Strom abschaltet.
Ich rufe zur Sicherheit bei jedem Reset des Systems die enable-Routine 
1x auf um sicher zu sein dass der Schutz aktiviert ist falls doch mal im 
unguenstigsten Moment abgeschaltet wurde.

juergen
Gast #650460
Lesenswert?

Danke Juergen !

Habe gesehen, dass im Mega32 der Brounout-Level auf 4,0 V eingestellt 
war, aber der Brounout-Dedector dich freigegben war (BODEN = 1). Habe 
jetzt
mit eingeschaltetem BOD getestet (langsam sinkende Versorgungsspannung, 
ca 150x) und es trat kein Problem bis jetzt mehr auf.



Gruß Josy
Gast #650466
Lesenswert?

Na bitte, dann sollte es ja auch so gehen.

Der Vorteil des 28C64B ist halt dass es ein absoluter Schreibschutz ist, 
egal wie der Rest des Systems ausschaut. Ich habe den genommen weil 
meine Controller keine BOD-Mimik haben.

juergen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren