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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.