Forum: Mikrocontroller und Digitale Elektronik serielles EEPROM, page write


von spi (Gast)


Lesenswert?

Hi,

ich beschäftige mich gerade mit seriellen Eeprom's und stolpere über 
folgende Frage (die Datenblätter sagen dazu irgendwie nichts 
Explizites): Das Eeprom hat eine Page-Grösse von 64 Bytes. Wenn ich 
jetzt z.B. nur 3 Bytes einer Page ändern will, muss ich dann vor dem 
Schreiben der Page erst die ganze Page auslesen, die 3 Bytes darin 
ändern und dann die Page zurückschreiben, oder kann ich auch einfach nur 
die 3 Bytes an das Eeprom übertragen und dann schreiben ohen das die 
anderen Bytes der Page verändert werden ?

Gruss und danke
Frank

von holger (Gast)


Lesenswert?

>Wenn ich
>jetzt z.B. nur 3 Bytes einer Page ändern will, muss ich dann vor dem
>Schreiben der Page erst die ganze Page auslesen, die 3 Bytes darin
>ändern und dann die Page zurückschreiben,

Jain. Welches EEPROM?

von Thomas (Gast)


Lesenswert?

Das Page Writing beschleunigt nur den Schreibprozess, da du nicht jedes 
mal die Startbedingt, Device-Code und Adresse senden mußt.
Somit kannst du die Startadresse setzten, dann 64 Bytes nacheinander 
übertragen (Eprom bestätigt immer mit Ack) und dann wartest du. Bis das 
Eprom beschrieben ist.

Was du brauchst/nutzen solltest ist das Byte Write.
Somit kannst du jede Adresse ansprechen und das entsprechende Byte 
schreiben.

Ich gehe mal von I2C Eeprom aus. Aber bei SPI sollte es nicht anders 
sein.

Also die verschiedenen Sachen wie Page Write, Byte Write, und analog 
dazu Random Read, Current Adress Read und Sequential Read im Datenblatt 
suchen.

von Peter D. (peda)


Lesenswert?

spi schrieb:
> Wenn ich
> jetzt z.B. nur 3 Bytes einer Page ändern will, muss ich dann vor dem
> Schreiben der Page erst die ganze Page auslesen, die 3 Bytes darin
> ändern und dann die Page zurückschreiben

Nein.

Du kannst beliebig viele Bytes bis zur Pagesize schreiben, der Rest 
bleibt unverändert.

Pagewrite sollte man bevorzugen, da dann der EEPROM weniger altert.
Ein Bytewrite schreibt nämlich auch immer die ganze Page.


Peter

von spi (Gast)


Lesenswert?

das Eeprom ist ein at25640 ...

Gruss

von John (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Du kannst beliebig viele Bytes bis zur Pagesize schreiben, der Rest
> bleibt unverändert.

Von der 'Startadresse' aber maximal bis zur nächsten Seitengrenze.

Gruß
John

von holger (Gast)


Lesenswert?

>das Eeprom ist ein at25640 ...

Da musst du die Page nicht erst lesen und
dann wieder schreiben. Aber pass auf das deine
drei Bytes eine Pagegrenze nicht überschreiten.

von Mal schaun (Gast)


Lesenswert?

Die Pagegroesse ist allerdings 32 Byte und nicht 64 Byte. Der Rest wurde 
schon gesagt.

von Gerd (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Ein Bytewrite schreibt nämlich auch immer die ganze Page.

Echt? Macht das EEPROM das intern, oder wie? Ich dachte, ich kann 
wirklich byteweise schreiben und das PageWrite wäre nur zum schnellen 
sichern vieler Daten.

von holger (Gast)


Lesenswert?

>Echt? Macht das EEPROM das intern, oder wie?

Ja.

von Arne (Gast)


Lesenswert?

John schrieb:
> Von der 'Startadresse' aber maximal bis zur nächsten Seitengrenze.

Wrap-Around nicht vergessen!
Ich setze hier Nymonix 25LC640 ein. Da muss man nach dem WriteEnable 
Kommando kurz das /CS auf High und wieder auf Low setzen und erst dann 
das Write Kommando mit Adresse und Daten.

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.