Forum: Mikrocontroller und Digitale Elektronik AT24C04: Pause zwischen Write/Read Zugriffen?


von Jakob (Gast)


Lesenswert?

Hallo,

wieviel Zeit muss man zwischen zwei Write oder Read Zugriffen bei den 
AT24C04 Eeproms verstreichen lassen?

Hab gemerkt, wenn ich mehrere z.B. Schreibzugriffe direkt hintereinander 
mache, wird nicht alles korrekt übertragen / genauso ist es bei den 
Lesezugriffen (man erhält nicht die ganze Wahrheit).
1
//letzter schritt in der write-routine
2
3
//stop condition 
4
I2C->CR1 |= 0x0200;
5
while ((I2C->CR1&0x200) == 0x200);   /* Wait until BUSY bit reset  */

Vielleicht hab ich auch was wichtiges vergessen; aber ich dachte mit 
Schreiben des Stopp-Bits und warten, dass das Busy-Bit nicht mehr 
gesetzt ist, sollte es das gewesen sein, oder?

Gruß
Jakob

von Jakob (Gast)


Lesenswert?

arbeite mit dem STM32F104 - aber ich denke, das wird nebensächlich sein;

von Archie F. (archie)


Lesenswert?

>EEPROM is capable of an 8-byte page write
Das heißt ein Buffer kann die 8 Bytes aufnehmen, dann müssen diese 
geschrieben werden und es kostet Zeit. Die Zeitangabe findest du 
ebenfalls im Datenblatt. Willst du nicht warten, besorge dir einen 
pingleichen FRAM von Ramtron.

von Jakob (Gast)


Lesenswert?

dann werd ich nochmal im datenblatt danach suchen

von stephan_ (Gast)


Lesenswert?

Meist braucht ein EEPROM ca 3-5 msec Wartezeit zwischen den 
Schreibzugriffen, steht im Datenblatt. Lesezugriffe brauchen keine 
Wartezeit.

von stephan_ (Gast)


Lesenswert?

Ergänzung: ein Lesezugriff nach einem Schreibzugriff sollte auch die 
Wartezeit einhalten. Ein EEPROM ist nach einem Schreibzugriff für die 
genannte Zeit völlig "tot" und reagiert auf gar nichts.

von Peter D. (peda)


Lesenswert?

Üblicher Weise baut man keine festen Wartezeiten ein.
Man prüft einfach so lange, bis auf die Adresse das ACK kommt.


Peter

von Opa (Gast)


Lesenswert?

> Üblicher Weise baut man keine festen Wartezeiten ein.
> Man prüft einfach so lange, bis auf die Adresse das ACK kommt.

So steht es auch im Datenblatt ...

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.