mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Xmega EEPROM


Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobias (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was verstehst Du nicht?

Autor: Tobias (Gast)
Datum:

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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Helmut Ru (heru01)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Knut Ballhause (Firma: TravelRec.) (travelrec) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Helmut Ru (heru01)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Helmut Ru (heru01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: danke Travel Rec!
Wie heisst's so schön:

"Kaum macht mans richtig, schon gehts."

Einer unserer Klassiker ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.