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
>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?
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.
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
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
>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.
Die Pagegroesse ist allerdings 32 Byte und nicht 64 Byte. Der Rest wurde schon gesagt.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.