Forum: Mikrocontroller und Digitale Elektronik Xmega EEPROM


von Tobias (Gast)


Lesenswert?

Hallo allerseits,

hat hier schon mal jemand mit dem EEPROM eines XMegas gearbeitet. Ich 
hab nämlich festgestellt, dass man nicht mit den vorgeferigten 
Funktionen aus eeprom.h arbeitet kann, da diese nicht kompatibel zum 
XMega zu sein scheinen. Und jetzt stehe ich irgendwie etwas auf'm 
Schlauch.

Gruß Tobias

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>hat hier schon mal jemand mit dem EEPROM eines XMegas gearbeitet.

Ich nehme an, das war eine Frage? Ja. Habe ich.

>Funktionen aus eeprom.h arbeitet kann, da diese nicht kompatibel zum
>XMega zu sein scheinen.

Das EEPROM des XMEGA funktioniert etwas anders, es ist pageweise 
organisiert und läßt sich zusätzlich in den linearen Adressbereich ab 
0x1000 einblenden. Es gibt sehr schöne AppNotes auf www.atmel.com dazu.

von Tobias (Gast)


Lesenswert?

Hmm, also so toll finde ich die AppNotes von Atmel nicht. Die helfen mir 
nämlich nicht dabei den Lese- und Schreibvorgang beim EEPROM zu 
verstehen. Aber immerhin konnte ich mir aus dem dort gebotenem 
Beispielcode ne funktionieren Lese-/Schreib-Byte Funktion 
zusammenkopieren.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Was verstehst Du nicht?

von Tobias (Gast)


Lesenswert?

Es fängt schon damit an, dass ich nicht genau weis was es bedeutet, dass 
das EEPROM pageweise aufgebaut ist.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wenn Du bei einem byteweise organisierten EEPROM ein Byte schreiben 
willst, so schreibst Du nur dieses Byte. Bei einem pageweise 
(seitenweise) organisierten EEPROM wird immer eine ganze Page (Seite) 
mit sounsovielen Bytes geschrieben. Dazu wird ein Pufferspeicher 
gefüllt, der dann in die Page geschrieben wird. Um ein Byte zu ändern 
und die anderen bestehen zu lassen, muß der Puffer bis auf das eine Byte 
mit 0xFF gefüllt sein.

von Helmut R. (heru01)


Lesenswert?

Hallo Leser/in,

eine Frage -nicht zum Ansprechen des EEPROM - aber zum Timing des 
EEProm:
wie schnell werden bei Euch 2k gelesen / geschrieben?
ZielµC: xMega128A1 Rev H

Dass die Schreibzeiten 'lange' dauern ca. 256 Byte/Sekunde habe ich 
erwartet.

Bei mir sind die Lesezeiten aber fast genauso lang... (???)
µC hängt in der Routine NVM_Busy ziemlich lange fest....
Wie ist das bei Euch? Ich habe I/O controlled ausprobiert, eine 
Schreibroutine, die das EEPROM komplett zuschreibt und dann über 
Pintoggeln am Oszi gemessen.
Jetzt ist noch Memory mapped an der Reihe... Muss mal messen.

Gruß
Helmut

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Memory mapped lesen geht ratzfatz. I/O controlled geht fast genau so 
schnell. Beim Lesen sollte das NVM-Busy-Bit eigentlich nur sporadisch 
High sein. Wenn Du unmittelbar vorher ein Byte / eine Page geschrieben 
hast oder der NVM-Controller anderweitig beschäftigt ist, muß die CPU 
natürlich warten. Hängt also von Deinem Programm ab.

von Helmut R. (heru01)


Lesenswert?

Also meine Messungen habe ich gemacht:

Hatte einen Fehler in meiner Fkt für Lesen; jetzt funzts.

µC AtXMega128A1 Rev. H; kompletter Bereich geschrieben, gelesen; Messung 
mit Oszi und Pingewackel:


                     READ     WRITE
                     -------------------
I/O controlled       100k/s   256 Byte/s
memory mapped        500k/s   256 Byte/s

Schreiben geht lt. Atmel Treiber nur I/O controlled.

Vielleicht braucht das ja noch jemand? ;-)

Gruß
Helmut

von Helmut R. (heru01)


Lesenswert?

PS: danke Travel Rec!
Wie heisst's so schön:

"Kaum macht mans richtig, schon gehts."

Einer unserer Klassiker ;-)

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.