Xmega EEPROM

Gast #1087072
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
>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
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
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.
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
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.
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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.