Hi ich habe da ein Problem mit den AT24C256 EEproms. Das TWI Testprogramm des WINAVR Compilers liefert folgendes Ergebnis: 0x00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xa0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xb0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xc0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xd0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xe0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xf0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Calling ee24xx_write_page(55, 44, 0xcb) => 9 Calling ee24xx_write_page(64, 35, 0xd4) => 35 Wrote 44 bytes. 0x00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xa0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xb0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xc0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xd0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xe0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0xf0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff done. An dem I2C-Bus hängen neben dem AT24C256 noch ein PCF8574AP und eine PCF8583 RTC. Die RTC und die Porterweiterung funktionieren einwandfrei. Nur das AT24C256 macht Probleme. Weder beim Lesen noch beim Schreiben treten Fehler auf, aber es steht beim Lesen immer nur =xFF drin. Kann mir da jemand weiterhelfen? Ich habe jetzt bereits mehr als eine Woche verbraten, aber das Teil will einfach nicht. Der WP Pin des AT24C256 hängt auf GND. Die SCL und SDA sind mit 4,7K Pullups bestückt. Hat jemand eine Idee, was da falsch sein könnte? Gruß Peter
Hast du schon mal probiert "manuel" was zu schreiben/lesen... also start->adresse->epromadresse(high)->epromadresse(low)->daten->stop ?? vielleicht das high/low anderesrum.. keine ahnung steht aber im datenblatt
Hallo Sebastian ich habe das Testprogramm des WINAVR als letzten Schritt probiert. Vorher schon alles manuell gemacht. Das Status Register steht immer auf dem erwarteten Wert, also Start, Stop, Data ACK etc. Aber beim Lesen bekomme ich immer 0xff. Die anderen I2C Bausteine am Bus arbeiten ohne Beanstandung. Das ist ja was mich so verwundert. Ich weis mir so langsam keinen Rat mehr. Es kann doch nicht so schwierg sein, ein AT24C256 EEPROM zu lesen und zu schreiben. Gruß Peter
hast du schon mal andere widerstände getestet?? ich werd wohl bald vor dem gleichen problem stehen. habe identische teile außer dem 32iger in manchen tutorials sind die widerstände vom i2c bus 10K, also ich benutze auch 10k und der PCF8574AP funzt (weiter bin ich noch nicht) vielleicht schaft es das eprom nicht die sda leitung auf low zu ziehen
Hallo Sebastian ich hatte vorher 10K PullUps und habe diese gegen 4,7k Widerstände getauscht. Am Ergebnis hat das leider nichts geändert. RTC und Porterweiterung arbeitet sowohl mit 4,7k als auch 10k, der AT24C256 weder noch. Gruß Peter
Das avr-libc-Beispiel (winavr) ist fuer "kleine" Eeproms, zumindest war das in den aelteren Versionen so, bei den groesseren Typen (ab 128?) wird die Speicheradresse anders uebertragen (2 bytes nur fuer speicheradr.) Die Codeteile zum Senden der Adresse muessen/mussten also etwas angepasst werden.
Hallo mthomas es ist richtig, dass bei dem AT24C256 2 Adressbyte geschickt werden. Eine entsprechende Anpassung habe ich gemacht. Leider ohne Erfolg. Gruß Peter
Hallo mthomas dein Tip mit den zweii Byte Adresse war Gold wert. Ich hatte in dieser Adressierung einen Fehler eingebaut. Nun klappt alles wunderbar. Herzlichsten Dank. Liebe Grüße Peter
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.