Forum: Mikrocontroller und Digitale Elektronik EEPROM Atomic-Operation+Mega48


von Daniel R. (Gast)


Lesenswert?

Hallo,
ich habe eine Frage bezüglich der EEPROM-Lebensdauer eines Atmega48.
Man kann 3 Schreib-Modi einstellen.
1.“Erase and Write in one Operation(Atomic Operation)”
2.”Erase only”
3.”Write only”

Zuerst  habe ich Modus 3 benutzt, jedoch bekomme ich dann beim Lesen
der EEPROM-Zelle  fast immer 0x00, anstatt den Wert, den ich zuvor in
die Zelle geschrieben habe.
Mit Modus 1 funktioniert alles. Das was ich in die Zelle geschrieben
habe bekomme ich beim Lesen auch wieder. Jedoch mache ich mir Sorgen um
die Lebensdauer.
Im Datenblatt des Mega48 heißt es auf Seite 18/19:
------------------------------------------------------------------------ 
--------------------------
The EEPROM Programming mode bit setting defines which programming
action that will
be triggered when writing EEPE. It is possible to program data in one
atomic operation
(erase the old value and program the new value) or to split the Erase
and Write opera-
tions in two different operations.
------------------------------------------------------------------------ 
----------------------------------------------

Heißt das, dass jede EEPROM-Zelle bei einem Schreibzugriff sowieso
zuerst gelöscht werden muss um dann wieder beschrieben werden zu
können, oder halbiert sich die Lebensdauer des EEPROMS dadurch?

Für so wenig wie möglich Schreibzugriffe habe ich bereits gesorgt,
jedoch würde es mich trotzdem interessieren, ob der EEPROM im 1.
Schreibmodus immer noch die volle Lebensdauer hat oder nicht.

...Daniel...

von crazy horse (Gast)


Lesenswert?

wenn ich mich recht erinnere, ist das Löschen der begrenzende Faktor für
die Lebensdauer.
Schreiben kannst du nur in eine gelöschte Zelle. Genauer gesagt, du
kannst eigentlich nur Bits von 1 nach 0 schreiben, niemals von 0 nach
1.
Das KANN Löschzyklen sparen, je nach altem und neuen Datum. 0xf0 alt
nach 0x80 z.B. sollte gehen.
Insofern macht es Sinn, dass beim Schreiben nicht automatisch ein
Löschzyklus ausgelöst wird.
Auch zeitlich dürfte es was bringen, wenn du in vorher gelöschte Zellen
den write-only-Zyklus benutzt.
Mir persönlich ist das alles recht neu, ist das bei den anderen Megas
auch so? Lange nicht mehr drum gekümmert....

von Daniel R. (Gast)


Lesenswert?

Hallo Crazy Horse,
danke erst mal für deine Tips  :)
Das heißt also, es geht nur in bestimmten Fällen... das macht Sinn, da
mein Ergebnis manchmal richtig, jedoch meistens falsch ist. Ich muss
nur 1 Byte speichern, welches nur Werte von 0 bis 4 enthält. Zeitlich
gesehen kann das ruhig lange dauern. Mein Mega48 schläft sowieso 99%
seiner Zeit.
Bisher habe ich das mit den Modi auch noch nicht gesehen, außer hier.
Bei den älteren Modellen ist das auf jeden Fall nicht so. Der Mega48
ist ja auch ziemlich neu...muss wohl daran liegen.

Daniel

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
Noch kein Account? Hier anmelden.