Forum: Mikrocontroller und Digitale Elektronik Jede Page des Flashspeicher 10.000 mal beschreiben


von Martin (Gast)


Lesenswert?

Der Flashspeicher des ATMega644 hat Pages a 256 Bytes und kann 10.000 
mal beschrieben werden. Gilt diese Grenze von 10.000 für jede Page 
getrennt? Ist es also möglich eine Page 10.000 mal zu beschreiben und 
danach die nächste usw.?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

So ist es.

von Martin (Gast)


Lesenswert?

@Läubi

Das ist prima, danke für deine Antwort.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Btw., ich habe mal (aus berufenem Munde) gehört, dass das page erase
den Flash deutlich weniger stresst als ein chip erase.  Damit dürfte
der Flash folglich beim seitenweisen beschreiben (wie man es mittels
SPM zwangsweise macht) deutlich länger halten, als wenn man ihn mittels
externem Programmer jeweils komplett löscht und neu beschreibt.

von Martin (Gast)


Lesenswert?

@Jörg

Hört sich gut an, ist aber ein riskant. Werde jeden Schreibzugriff 
mitzählen und beim Erreichen von 10.000 auf die nächste Page wechseln.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin schrieb:

> Werde jeden Schreibzugriff
> mitzählen und beim Erreichen von 10.000 auf die nächste Page wechseln.

Es genügt, wenn du testest, ob du sie ordentlich schreiben konntest.
Die garantierte Zyklenzahl wird doch für die maximale zulässige
Betriebstemperatur angegeben, bei besseren Bedingungen bekommst du
viel mehr Zyklen, bevor da was ausfällt.

von Martin (Gast)


Lesenswert?

Was heißt das genau? Solange schreiben bis es schiefgeht? Kann es denn 
nicht passieren, daß das Schreiben erfolgreich ist, aber die Bits - nach 
ein paar Tagen oder so - kippen?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Martin schrieb:

> Kann es denn
> nicht passieren, daß das Schreiben erfolgreich ist, aber die Bits - nach
> ein paar Tagen oder so - kippen?

Das typische Ausfallbild ist halt, dass eine Zelle gar nicht mehr
schreibbar ist (d. h. sie behält den Bitwert 1).  Was du meinst, ist
die data retention, aber die ist eine andere Sache und hat mit dem
Totalausfall (auf den sich die Zyklenzahl bezieht) nichts zu tun,
sondern ein Datenverlust kann (nach langer Zeit und besonders bei
hohen Temperaturen) prinzipbedingt immer auftreten.  Damit ist die
Zelle selbst aber noch nicht ausgefallen, denn sie lässt sich danach
ja erneut programmieren.  Gegen data retention Probleme könnte man
sich jedoch durch regelmäßige "refreshs" absichern: der Inhalt einer
page wird gelegentlich (solange er noch intakt ist natürlich, man
müsste also irgendwo CRCs davon ablegen) einfach ohne Löschen 1:1
wieder darüber geschrieben.  Da kein Löschen erfolgt, stresst das auch
nicht weiter, d. h. die Zelle wird dadurch nicht stärker abgenutzt.

Disclaimer: ich bin selbst kein Flash-Experte, das ist die Wiedergabe
von Dingen, die ich aus der Diskussion mit anderen entnommen habe.

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.