EEPROM in ATMEGA48 gelöscht

Gast #1747313
Lesenswert?

Hallo,
hab eine Schaltung mit einem ATmega48. Verwende das
EEPROM um die Seriennummer dieser Schaltung zu speichern.
Jetzt hatte ich es schon einige Male, dass das EEPROM komplett
leer war, sprich die Seriennummer weg.
Jetzt sieht es nur so aus, dass in den Bereich im EEPROM mit der
Seriennummer nicht geschrieben wird und auch die sonstigen
Schreibbefehle sollten eher harmlos sein, da ich nur auf feste
Adressen zu greife. ( Ohne Schleifen etc. )

Kann mir jemand helfen ?

Danke,
Pepe.
#1747337
Lesenswert?

Atmel Datasheet:

"5.3.6 Preventing EEPROM Corruption
During periods of low VCC, the EEPROM data can be corrupted because the 
supply voltage is
too low for the CPU and the EEPROM to operate properly. These issues are 
the same as for
board level systems using EEPROM, and the same design solutions should 
be applied.
An EEPROM data corruption can be caused by two situations when the 
voltage is too low. First,
a regular write sequence to the EEPROM requires a minimum voltage to 
operate correctly. Secondly,
the CPU itself can execute instructions incorrectly, if the supply 
voltage is too low.
EEPROM data corruption can easily be avoided by following this design 
recommendation:
Keep the AVR RESET active (low) during periods of insufficient power 
supply voltage. This can
be done by enabling the internal Brown-out Detector (BOD). If the 
detection level of the internal
BOD does not match the needed detection level, an external low VCC reset 
protection circuit can
be used. If a reset occurs while a write operation is in progress, the 
write operation will be completed
provided that the power supply voltage is sufficient."


Peter
Gast #1747373
Lesenswert?

@obazda:
Ich speichere nur 5 Byte weitere Statuswerte im EEPROM aus
der Firmware raus. Also kein SPI Programmieren beim Kunden ...

@mui & @Peter:
Brown-Out sollte eigentlich auf 2.7V gesetzt sein, um hier save zu sein. 
Kann allerdings gerade nicht sagen, ob dies bei den gelöschten ATmegas 
auch der Fall ist. Werd ich prüfen...

Hatte eigentlich gehofft, dass es noch etwas Bekanntes gibt ...
Gast #1850916
Lesenswert?

gibt es hier etwas Neues?

Ich habe leider ein ähnliches Problem bei einem M168! Einzelne Werte 
scheinen - recht unregelmäßig, aber doch - zu kippen!

Auch ich habe den BrownOut auf 2.V gesetzt, kann aber ebenfalls nicht 
sagen, ob es bei den Devices, bei denen es auftrat, auch schong gesetzt 
ist!

Ich betreibe die HW aber mit 16MHz und das ist wohl zu hoch für 2.V...
D.h. hier könnte das Problem liegen...
Allerdings schreibe ich nur zu definierten Zeitpunkten ins EEPROM und 
nicht in der Gegend des Abschaltens. Da EEPROM Zellen ja rein 
theoretisch nicht einfach so kippen, sondern nur wenn sie geschrieben 
werden, müsste es schon der schreibende Teil der HW sein, der 
empfindlich auf Unterspannung ist, und nicht der Speicher selbst...
Was für mich widerum heißt, dass der für 16MHz zu niedrige BrownOut 
eigentlich nicht das Problem sein kann, denn die Einschränkung "niedrige 
Spannung - niedrige Höchstfrequenz" kommt doch von der zur Verfügung 
stehenden Energie und so lange das Schreiben des EEPROMs nicht 
angestoßen wird, sollte da auch nichts passieren, außer die SFR - Bits 
beginnen frisch-fröhlich zu hüpfen und ChaChaCha zu tanzen!
#1850964
Lesenswert?

Habe dasselbe Problem mit einem ATMega88...
Ich dachte eigentlich, die EEPROM-Probleme bei Atmel seien erledigt. Mit 
Mega8/16/32 hatte ich auch nie Probleme, jetzt geht der Mist wieder los 
:-(
Bei den 90Sxxxx habe ich das gar nicht mehr verwendet, immer ext. 
drangebastelt, wenn eins erforderlich.
Es ist nicht nachvollziebar, wann und warum einzelne Zellen gelöscht 
werden. Passiert im ganz normalen Betrieb, nicht mal ein Reset 
zwischendurch.
Brownout ist gesetzt (4,5V), Betrieb mit 5V.
Da es meist die untersten Zellen betraf, habe ich einfach mal testweise 
10Bytes freigelassen. Wurde besser, aber nicht 100% sicher.
Hoffe jetzt mal, dass es mit dem 88PA besser ist, aber so richtiges 
Vertrauen habe ich nicht mehr :-(
Ja, ich weiss, meistens liegts doch an der eigenen Software. In dem Fall 
glaub ich das aber inzwischen nicht mehr.

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