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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.