Hallo zusammen, ich habe schon wieder ein schwerwiegendes Problem. Also ich habe eine Schaltung mit dem ATMega aufgebaut, am I2C Bus hängen in zwei Richtungen je ein PCF8574 nach dem einen PCF geht der Bus noch weiter zu einem ST24C02 (Serieller Speicher) und einem PCF8583 (RTC). Zwischen dem ST und dem RTC liegen die Pull-UPs (je 4k7). Das ganze ist einige Zentimeter lang. PCF8574 ST24C02 Pullups PCF8583 ATMega--+-------+------------+------+-------------+ | | PCF8574 Ich verwende den Hardware-TWI und die Routinen aus der Atmel App. Note 315 für C. Dies ist mein Test-Code (ich habe die Namen der Funktionen abgeändert, aber in den Funktionen sonst nur das was nötig war um die Dateien kompilieren zu können): [...] TWIInit(); // Test für einen der PCF8574 messageBuf[0]=DevLCD+TWIWrite; messageBuf[1]=0xff; TWISend(messageBuf,2); // Code um die Uhrzeit zu bekommen messageBuf[0]=DevRTC+TWIWrite; messageBuf[1]=0x01; TWISend(messageBuf,2); messageBuf[0]=DevRTC+TWIRead; TWISend(messageBuf,8); TWIGet(messageBuf,8); // Code fürs EEPROM messageBuf[0]=DevEEPROM+TWIWrite; messageBuf[1]=addr; messageBuf[2]=byte; TWISend(messageBuf,3); [...] Keiner der Befehle scheint zu regelmäßig zu funktionieren. In letzter Zeit bekomme ich oft den Fehlercode F8 (Atmel: TWI_No_State). Ich habe die Frequenz des Buses (mittels der Register TWBR und TWPS ) mittlerweile weit unter die 100kHz gesetzt. Weil ich dachte, dass es vielleicht daran liegen würde, geholfen hat es leider nicht. Also definitiv funktionieren die beiden PCFs nicht. Manchmal scheint die Uhr zu funktionieren, d.h. sie zählt, aber leider erstens viel zu schnell (2fach) und zweitens funktioniert das auch nicht immer. Ist grundsätzlich irgendwas am Aufbau oder am Code den ich verwende irgendwas falsch? Frohe Ostern! Daniel
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.