AVRco Write-Zugriff auf das EEPROM

mc-electronic
Benutzer
Avatar
Gender: n/a
Location: Sauerland NRW
Posts: 372
Registered: 03 / 2008
Subject:

AVRco Write-Zugriff auf das EEPROM

 · 
Posted: 17.05.2018 - 18:00  ·  #1
Hallo AVRco,

mich würde aus Gründen der Lebensdauer interessieren, wie der Compiler bei einem Schreibzugriff auf eine EEPROM-Variable arbeitet:

Die Datenblätter den ATMega Prozessoren schreiben von einem "Atomic" und "Split Byte" Zugriff. Atomic = Erase/Write in einem Ablauf, Split Byte mit Erase zuerst, dann später Write.

Welche Art des Zugriffs benutzt der AVRco?

Weiterhin findet man den Begriff des "Page Programmings". Hier findet man im AVRco für den Flash Befehle wie "FlashInitPage" oder "FlashWritePage". Für das EEPROM (welches lt. Datenblatt auch in Pages organisiert ist) gibt es das in AVRco nicht.

Bedeutet das, daß bei einem Zugriff auf ein Byte im EEPROM dann auch alle anderen Bytes einer EEPROM-Page mit gelöscht und neu überschrieben werden? Dann müsste das ja bei der Lebensdauerberechnung mit berücksichtigt werden?

Grüße, Michael
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: AVRco Write-Zugriff auf das EEPROM

 · 
Posted: 17.05.2018 - 18:23  ·  #2
Hallo Michael,

wir benutzen den Atomic Zugriff.
Zuerst wird gelesen ob der neue Wert mit dem alten identisch ist.
Ist das der Fall wird nichts geschrieben.

Die Frage mit der EEprom Page ist mir nicht klar. Der AVRco benutzt
das EEpage nicht. Es wird alles ganz normal beschrieben, ohne pages.
Die EEpage bringt keine Vorteile sondern nur Nachteile. Auch wenn
man nur ein Byte ändern will muss hier eine komplette page gelöscht
werden. Nur wenn das EEprom komplett neu beschrieben werden soll
könnte es ein Vorteil bringen.

rolf
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

Re: AVRco Write-Zugriff auf das EEPROM

 · 
Posted: 18.05.2018 - 05:43  ·  #3
Quote by rh

...
wir benutzen den Atomic Zugriff.
Zuerst wird gelesen ob der neue Wert mit dem alten identisch ist.
Ist das der Fall wird nichts geschrieben.
...


Hallo rolf,

:-) das ist ja super, dann kann ich ja meine Vergleichsfunktionen auf Änderung vor dem Schreiben entfernen :-D

Thorsten
mc-electronic
Benutzer
Avatar
Gender: n/a
Location: Sauerland NRW
Posts: 372
Registered: 03 / 2008
Subject:

Re: AVRco Write-Zugriff auf das EEPROM

 · 
Posted: 18.05.2018 - 08:46  ·  #4
Hallo Rolf,

vielen Dank, das ist eine wichtige Information.

Zum EEPage: von Microchip gibt es ein PDF zum Thema EEPROM Endurance. Darin werden die physikalischen Grundlagen der EEPROMS recht kurz und verständlich erklärt. Kurz gesagt, gibt es 3 Faktoren, die die Lebensdauer negativ beeinflussen: hohe Temperaturen, hohe Betriebsspannung des µP und der Atomic Write. Beim PageWrite wird die Oxyd-Isolierschicht der Zelle wohl weniger stark beansprucht. Diese Schicht verschleißt und ist irgendwann für Bit- und Bytedefekte verantwortlich.
Ich gebe das mal unkommentiert im Original-Text wider:

The second key effect on endurance is the choice of write mode. When a single
byte is programmed, the energy from the charge pump is concentrated on that one
byte. If a page write is used, that energy is dissipated over more bytes, so cell wear
is decreased. Microchip builds in circuitry to minimize the wear effect of byte writes,
but overall, designers should use Page mode whenever possible.

2 Dinge sollten noch gesagt werden: Diese Dokumentation ist von 2008, da gehörte Atmel noch nicht zu Microchip. Der Artikel bezieht sich auf Microchip-Produkte. Diese haben eine viel höhere Write-Lebensdauer (> 1.000.000) als die Atmel Chips (100.000).
Damit bezieht sich der Page-Write Mode auch nur auf damalige Microchip-Produkte und nicht auf Atmel µPs.
Das Datenblatt der Atmel µP hat auch keinen Page-Mode für die EEPROM-Programmierung aus dem laufenden Programm heraus. Page-Programmierung des EEPROMs geht nur über die externe EEPROM-Programmierung durch das externe Programmier-Gerät.
Nur aus Interesse: verwendet der AVRco ISP Page-Mode?

Im übrigen gebe ich Rolf völlig recht: Aus der Sicht des Anwender-Programms würde der Page Mode höchstens in ganz speziellen Fällen mit Block-Daten Zugriff Vorteile bringen (wenn man sich auch an die Page-Grenzen sauber hält). Da ist der Atomic Mode sicher der richtige.

Michael
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: AVRco Write-Zugriff auf das EEPROM

 · 
Posted: 18.05.2018 - 10:26  ·  #5
Hallo Michael,

ja, die Programmer müssen den EEprom Page Mode benutzen.
Da geht kein Weg dran vorbei.
Im übrigen sollte man ja nie das EEprom wie ein RAM behandeln. :-(

rolf
miparo
Administrator
Avatar
Gender:
Location: Germany
Age: 58
Posts: 959
Registered: 09 / 2007
Subject:

Re: AVRco Write-Zugriff auf das EEPROM

 · 
Posted: 18.05.2018 - 10:56  ·  #6
Hi Michael,
ich habe einen DSP mit einem Mega32 seit ca. 1999 in Betrieb.
Dort werden Volume und noch ein paar anndere Parameter im EEprom gespeichert.
Keins von den 500 Geräten ist zurück gekommen.

Ansonsten kann ich noch die FRAM's empfehlen.
High-endurance 100 trillion read/writes. Bis dahin ist jedes Gerät veraltet.

miparo
mc-electronic
Benutzer
Avatar
Gender: n/a
Location: Sauerland NRW
Posts: 372
Registered: 03 / 2008
Subject:

Re: AVRco Write-Zugriff auf das EEPROM

 · 
Posted: 18.05.2018 - 11:06  ·  #7
Hallo Rolf, Hallo Miparo,

jaja, das EEPROM ist kein RAM. Da habt ihr recht, meist ist der Programmierer Schuld. Mit FRAMs habe ich bei den MSP430FRxx von TI viel gearbeitet, das ist wirklich super. Rasend schnell und fast unkaputtbar!

Noch eine allgemeine Anmerkung zu den EEPROM Zellen: Es geht ja nicht nur darum, ob eine Zelle noch "geht" oder nicht - es geht vielmehr um die Endurance, also die Dauer, die so eine Zelle ein Bit korrekt behält: Wenn die Isolier-Oxydschicht beschädigt ist, dann kann eine Zelle vielleicht noch für eine Woche, einen Tag oder auch nur eine Minute die Werte noch halten, aber dann sind die Elektronen zurück-diffundiert und das Bit ist weg. Daher sind auch all diese Schreib/Lese-Tests bei EEPROMs wenig aussagekräftig, wenn jede paar Millisekunden gelesen und wieder neu geschrieben wird - das ist dann wie ein RAM Refresh. Damit kriegt man vielleicht eine Million Zyklen hin, aber so eine Zelle hält dann die Bits nur noch eine kurze Zeit.. Das merkt die Test-Software erst, wenn die Endurance kleiner als der Testzyklus geworden ist..

Grüße, Michael
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   122   136 · Page-Gen-Time: 0.034952s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI