Ich versuche, diese I²C EEPROM-Chipkarte mit einem MSP430F2012 mit Hardware-I²C byteweise zu beschreiben. Wenn ich im Einzelschritt durch mein ASM-Programm gehe, quittiert das EEPROM die I²C-Adresse, die Zieladresse im PROM und das Datenbyte wie erwartet mit ACK. Die Stop Condition wird auch einwandfrei geschickt - wie ich auf dem Oszi sehe. Wenn ich das Programm in Echtzeit 4 Byte nacheinander schreiben lasse, kommt nach dem Schreiben der Zieladresse und des 3 Datenbytes ein NAK zurück. Laut Datenblatt braucht das EEPROM 5-10 ms für den Schreibvorgang, der mit der Stop Condition ausgelöst wird. Es sieht also stark danach aus, daß ich einfach zu schnell nach der Stop Condition den nächsten Schreibvorgang anwerfe. (Der MSP läuft mit 12 MHz) Nachdem ich nach jedem Schreibzyklus 20 ms Wartezeit eingebaut habe, kommt er zumindest ohne Fehler zurück. Eigentlich würde ich erwarten, daß der I²C-Chip bei neuer Adressierung, während er noch busy ist, einfach die SCL-Leitung auf low zieht, bis er fertig ist, aber offenbar ist das nicht so. Das Datenblatt schweigt sich zu dem Thema aus. Das USI takte ich 32 kHz, die ich noch durch 2 teile. Hat jemand Erfahrung mit dem EEPROM?
Das Stichwort heist: ACKNOWLEDGE POLLING Im Datenblatt eines Bedrahteten 24C512 auf Seite 7 beschrieben. http://www.datasheetcatalog.org/datasheets/270/160591_DS.pdf Gruß, Tubie
Das heißt also, daß das NAK kein Bug, sondern ein Feature ist... Danke!
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.