Forum: Mikrocontroller und Digitale Elektronik ATXmega und Eeprom Pages


von Daniel (Gast)


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...

von OMG (Gast)


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.

von OMG (Gast)


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

von OMG (Gast)


Lesenswert?

OMG schrieb:
> Byte and page accessible

Das bezieht sich auf das EEPROM des Controllers.

von Daniel (Gast)


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 :-)

von Erklehr Behr (Gast)


Lesenswert?

Daniel schrieb:
> Ich war Gedanklich sozusagen bei "Äpfeln" Apfel 1, usw.

Äpfel haben keine Adresse.

Daniel schrieb:
> 0 Apfel gibt es ja nicht

0 Apfel heisst: Anzahl der Äpfel ist null, und "keine Äpfel"
gibt es tatsächlich, nämlich dann wenn der Vorrat an Äpfeln
eben aufgebraucht ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.