Xmega EEPROM

Gast #1087072
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
(Firma: TravelRec.) Persönliche Seite #1087085
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.
Gast #1087109
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.
(Firma: TravelRec.) Persönliche Seite #1087143
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.
#1214966
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
(Firma: TravelRec.) Persönliche Seite #1215086
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.
#1215934
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren