I2C 24LC1025 EEPROM page write Problem

Gast #3771677
Lesenswert?

Hallo Leute,
ich benutze das 24LC1025 EEPROM und Daten zu speichern.
Schreibvorgang :
Wenn ich an das Ende einer Seite komme löse ich die Stoppbedingung aus 
und fange an das EEPROM auf ein ACK zu abzufragen.
(Wie ich das Datenblatt(Seite 11) richtig verstehe. Wird das EEPROM nur 
ein ACK  senden wenn es mit dem schreiben der Daten fertig ist.)
Hab ich das ACK empfangen, schreibe ich wieder die EEPROM Add., die neue 
Seitenadd. und die Daten.
Dass dieser Vorgang so abläuft hab ich mit dem Oszi kontrolliert. Auf 
dem i2c werden die erwarteten Daten richtig geschrieben.
Lese ich wieder die geschriebenen Daten von Seite (X) sind diese nach 
dem "umblättern" der Seite (X+1)  korrupt.
Wenn ich beim Schreiben der Daten vor dem umblättern der Seite einen 
Brake point setze bzw warte, funktioniert das Schreiben tadellos.

Übersehe ich irgendwas im Datenblatt  ist das EEPROM hin oder was ist da 
los?
Steh grade total auf dem Schlauch :(
Gast #3771774
Lesenswert?

Begründung?

Wie gesagt, ich hab die i2c daten die geschrieben werden mit dem Oszi 
überprüft. Diese werden korrekt auf den BUS geschrieben.
Und alle Start Stop bedingungen und das ACK polling kann ich dort 
korrekt ablesen.
Gast #3772020
Lesenswert?

Und nochmal

Ich hab den gesammten schreibvorgang ohne den Brake point zu setzen im 
Oszi aufgezeichnet. und die Software arbeitet wie erwartet.
Sie pollt solange bis das eeprom ein ACK sendet!
Dabach Schreib sie die richtigen Daten auf den i2c BUS!
Gast #3772242
Lesenswert?

Hallo,
ich möchte mich meinen Vorgängern anschliessen - ohne Source Code
haben alle nur die Glaskugel im Regal.
Wie sieht denn überhaupt Dein ACK Polling aus?
Mir war noch (dunkel) so, dass man die ADR während des Schreibvorgangs 
NICHT
ändern darf - also auch nicht während des ACK Pollings!!!
Eine Alternative wäre:
1) PAGE Schreiben
2) ACK Polling auf der letzten ADR
3) VERIFY der selben PAGE
dann wieder zu 1.

Gruß
TK
Gast #3772249
Lesenswert?

> Lese ich wieder die geschriebenen Daten von Seite (X) sind diese nach
> dem "umblättern" der Seite (X+1)  korrupt.
Hmmm... undeutlich formuliert. Allein schon deswegen wäre ein Blick auf 
deinen Code nötig, damit wir sehen, was du tust und zu tun glaubst.

Nach obiger Beschreibung ist nicht klar, ob du beim "umblättern" nur 
einen Read machst oder auch in (X+1) schreibst. Außerdem ist 
beispielsweise nicht ersichtlich, auf welche Weise die gelesenen Daten 
korrupt sind - das kann von "nicht geschrieben" bis "Inhalt der 
eigentlich an (X+1) gehört" alles bedeuten...

Ralf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren