mikrocontroller.net

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


Autor: Daniel R. (Gast)
Datum:

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

Autor: crazy horse (Gast)
Datum:

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

Autor: Daniel R. (Gast)
Datum:

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

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.