mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik serielles EEPROM, page write


Autor: spi (Gast)
Datum:

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

Autor: holger (Gast)
Datum:

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

Autor: Thomas (Gast)
Datum:

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

Autor: Peter Dannegger (peda)
Datum:

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

Autor: spi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das Eeprom ist ein at25640 ...

Gruss

Autor: John (Gast)
Datum:

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

Autor: holger (Gast)
Datum:

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

Autor: Mal schaun (Gast)
Datum:

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

Autor: Gerd (Gast)
Datum:

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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Echt? Macht das EEPROM das intern, oder wie?

Ja.

Autor: Arne (Gast)
Datum:

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

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.