ATXmega und Eeprom Pages

Gast #6513071
Lesenswert?
• ▲
▼
Hallo.
Ich habe mal eine eventuell blöde Frage an euch...
Es geht um einen ATXmega32E5, bei dem ich den Eeprom beschreiben will.
Der Aufbau des Eeproms entnehme ich dem Datenblatt wie folgt:
512Byte Gesamtgröße, Eeprom ist in Pages aufgeteilt und wird auch in 
Pages beschrieben. Eine Page umfasst 32Byte, das heißt ich habe 
insgesamt 16 Pages.

Nun lasst mich mal kurz etwas annehmen:
Page 1 = Byte 1 bis Byte 32
Page 2 = Byte 33 bis Byte 64
Page 3 = Byte 65 bis Byte 96
usw.
Der NVM Controller beschreibt nur ganze Pages.
Ist eigentlich an und für sich ja gut, man kann den NVM Page Buffer mit 
32 Bytes beladen und diese 32 Bytes komplett in einem Wisch speichern.
Das heißt, ich kann den Page-Buffer entweder von Byte 1 bis Byte 32 oder 
Byte 33 bis Byte 64, usw. laden.
Nur was passiert wenn ich den Page Buffer von Byte 15 angefangen bis 47 
lade?
Das sind dann ja 2 Pages.
Müsste ich meiner Software beibringen, die Seiten aufzuteilen und 
jeweils eine Page beschreiben lassen, oder wie?
Eigentlich ja, wenn ich das richtig verstanden habe?
Oder gibt es andere Lösungen, wie man das automatisiert macht? Oder 
einfach nach jedem Byte was ich speichern will, direkt in den Eeprom 
über Page Buffer usw.? Gibt ja viele Wege...
Gast #6513087
Lesenswert?
• ▲
▼
Daniel schrieb:
> Nun lasst mich mal kurz etwas annehmen:
> Page 1 = Byte 1 bis Byte 32
> Page 2 = Byte 33 bis Byte 64
> Page 3 = Byte 65 bis Byte 96

Gewöhne dir von vorne herein an in Adressen zu denken.

Das erste Byte ist Byte 0
Das zweite Byte ist Byte 1
Das letzte Byte eine Page ist Byte 31!
etc.
Machst du das nicht wirst du früher oder später auf die Schnauze
fallen, wenn auch nur virtuell. Weh tut es trotzdem.
Gast #6513096
Lesenswert?
• ▲
▼
Daniel schrieb:
> Müsste ich meiner Software beibringen, die Seiten aufzuteilen und
> jeweils eine Page beschreiben lassen, oder wie?

Ja so ist das. Eine einigermassen intelligente Software macht
das so. Aber du kannst auch jedes Byte, Wort oder Doppelwort
einzeln schreiben. Also keine "komplizierten" Page Aktionen
starten.

Auszug aus dem Datenblatt:
----------------------------
Data memory
 One linear address space
 Single-cycle access from CPU
 SRAM
 EEPROM
 Byte and page accessible
Gast #6513139
Lesenswert?
• ▲
▼
Ah, ok. Dankeschön für deine Antwort. Mit der Aufzählung ab 1 beginnend 
war falsch, ich weiß.
Ich war Gedanklich sozusagen bei "Äpfeln" Apfel 1, usw. 0 Apfel gibt es 
ja nicht... mir ging es ja nur darum die Page Aufteilung zu verstehen...
Danke :-)

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.