EEPROM-Speichererhalt bei PIC-Prozessoren

Hallo liebe Experten, ich habe Verständnisschierigkeiten zu EEPROM-Angaben in einem Datenblatt.

In dem Datenblatt des PIC12F629/675 habe ich einen Hinweis zum internen EE-Datenspeicher gefunden, der nicht zu meinem bisherigen Verständnis von der EE-Funktion passt. Im Dokument

formatting link
auf Seite 51 steht:

8.5.1 USING THE DATA EEPROM > The Data EEPROM is a high-endurance, byte addressable > array that has been optimized for the storage of > frequently changing information (e.g., program > variables or other data that are updated often). > Frequently changing values will typically be updated > more often than specifications D120 or D120A. If this is > not the case, an array refresh must be performed. For > this reason, variables that change infrequently (such as > constants, IDs, calibration, etc.) should be stored in > FLASH program memory.

Dazu auf Seite 94 die zugehörigen Daten (Auszug):

12.7 DC Characteristics: > Data EEPROM Memory > > Param > No. Sym Characteristic Min Typ Max Units Conditions > > D120 ED Byte Endurance 100K 1M - E/W -40°C are violated > D124 TREF Number of Total 1M 10M - E/W -40°C = TA = +85°C > Erase/Write Cycles before Refresh

(Für folgendes beziehe ich mich auf D120 bis 85°C) Bisher dachte ich, dass nach 100.000 Schreibzyklen die Speicherzelle möglicherweise nicht mehr ihren Inhalt behält. Nun steht da, ich soll vor 1 Mio. Schreibzyklen einen Refresh durchführen (was auch immer ein Refresh sein soll). Was ist damit gemeint? Warum steht da, die Daten bleiben 40 Jahre erhalten, wenn ich keine Konstanten speichern soll? Habe ich das falsch verstanden oder ist das nur ungünstig formuliert? Könnte es sein, dass die Daten für Einzelzellen und dem Gesammtarray vermischt wurden? Ist es möglich, dass beim Beschreiben einer Zelle die Nachbarzelle an Information verliert?

Wer kann mir dazu den Text interpretieren helfen?

MfG Horst

Reply to
Horst Bartig
Loading thread data ...

Weil in ungünstigen Fällen (Spannungsausfall oder Spikes während des schreibens manchmal unbeteiligte Zellen überschrieben werden können.

--
MFG Gernot
Reply to
Gernot Fink

Das "EEPROM" basiert auf solchen Chips wohl oft letztlich auf FLASH und FLASH kann man nur in Gruppen von Bytes löschen. D.h. es kann durchaus sein, das zum Schreiben eines Bytes z.B. 64 Bytes gelöscht und neubeschrieben werden. Wenn man dann ein einzelnes Byte mit Schreib/Lesezyklen traktiert, kann man unbeteiligte Bytes mitruinieren.

Wenn man die Speicherzelle nicht schreibt, kann, besonders bei hoher Temperatur, die Ladung zusehr absinken. Wenn man die Speicherzelle schreibt wird das Oxid durch Chargetrapping verunreinigt und hält dann die Ladung auch nichtmehr. Praktisch wird man also Bytes 3fach-redundant speichern. Wenn beim Lesen der 3 Bytes eines fehlerhaft ist, wird man dieses neu schreiben. Damit hat man halbwegs sinnvolles automatisches Timing des Refresh.

Solche Werte können wohl nichtmal an Samples getestet werden sondern sind munter extrapoliert.

Es gibt zu dem Thema auch laufend threads in comp.arch.embedded ( aber grosse Erleuchtung dort auch nicht ). Und es gibt auch Bücher, Sharma "Semiconductor Memories" IEEE-Press 1997 behandelt auch Test der Hersteller und Ausfall- verhalten etwas.

MfG JRD

Reply to
Rafael Deliano

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.