mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik i2c EEPROM


Autor: Peter Kasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich versuche gerade ein EEPROM (24LC01B von Microchip) an meinem m16c 
Testboard von Glyn zum laufen zu bekommen. Den passenden Sourcecode hab 
ich mir von www.m16canz.com/sampcode.htm heruntergeladen (Sample 24). In 
ihrem Beispiel verwenden die zwar den Atmel AT24C04 I2C Serial EEPROM, 
aber nach Vergleich der Datenblätter müssten die beiden gleich 
ansprechbar sein. Lesen scheint auch zu funken, aber beim schreiben kann 
ich nur die erste Seite beschreiben (hab ich auch für die 8 byte 
angepasst), oder nur das erste Byte bei byteweises Schreiben. 
Wiederholtes schreiben schlägt fehl (ich mach auch immer schön das 
ACK-Polling um zu sehen ob der EEPROM wieder bereit ist). Hat das mal 
jemand zum laufen gebracht, wäre echt dankbar für jede Hilfe.
Gruß
Peter

PS: Vielleicht hab ich auch irgendwas in den Datenblättern übersehen, 
aber ich komm einfach nicht dahinter...

Autor: Reini (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kurze NAchfrage: welche 8 Bytes hast du angepaßt ? Die Adresse sollte 
fest auf A0 bleiben, nur der zweite Hexwert muß auf 0x00, 0x10, 0x20, 
0x30, ... usw. angepast werden.

Ich werde das Program morgen testen und dann morgen abend mich bei Dir 
melden.

Autor: Peter Kasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die 8 Bytes für Seitenweises schreiben, im Orginalsource werden 16 Bytes 
pro Seite geschrieben, der 24LC01B hat aber nur einen 8 Byte großen 
Seitenpuffer. Die Adresse erhöhe ich deshalb auch in 8ter Schritten 
0x00, 0x08, 0x10,...
Die Adresse für den Chip bleibt fest auf A0, ist in Sample24 genauso 
(Wenn ich es richtig verstanden habe sollte es aber dort anders sein, da 
die so nicht den kompletten Speicher adressieren können)
Gruß
Peter

Autor: Reini (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
das Programm läuft so auf meinem "Eigenbau" leider nicht. Ich habe eine 
andere Version die läuft, die kann ich dir morgen mailen.
Ich habe mir den Source-Code auch mal angesehen, hast du in der Datei 
"i2c_eeprom" auch den Bytecounter in der Funktion void 
i2c_eeprom_page_write(...) auf <8 geändert ?

Autor: Peter Kasi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Reini,
ja hab ich geändert (war das was ich mit den 8 Byte meinte). Schick mir 
mal deine Version. Was verwendest du für ein EEPROM?

Hab das heute noch mal (fast den ganzen Tag) durchgetestet, komm aber 
einfach nicht dahinter, lesen funktioniert ja ohne Probleme, nur 
schreiben macht Probleme. Vielleicht kann mir ja jemand zumindest sagen 
ob die Hardware korrekt ist:
24LC01B von Microchip 2,5 V version an 5V die das Evaluationboard 
liefert (laut Datenbaltt on 2,5 bis 5,5 max. 7V zu verwenden, auf jeden 
Fall im grünen Bereich).
Als Pullups für den I2C Bus hab ich zwei 4k7 Widerstände verwendet (im 
Datenblatt stand 10 k für 100 KHz, funktioniert aber gar nicht). A0-A3 + 
Vss + WP an Masse, SCL und SDA an PIN 29 + 30 des m16c (wie rum weiß ich 
grad nicht hab's leider nicht vor mir liegen, ist aber korrekt) und Vcc 
an 5V . Hab inzwischen auch schon 3 verschiedene 24LC01B verwendet, 
funkt aber bei keinem richtig.

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.