Gast
#5372553
Hallo, Ich habe ein seltsames Verhalten bei dem Portexpander PCF8574 (I2C Bus)festgestellt. Auch nach mehrtägiger Untersuchung des Problems habe ich keine schlüssige Erklärung. Ich betreibe den PCF8574 an der TWI Schnittstelle (PORTC) eines XMEGA32 Mit folgendem Code lese ich den PCF8574 ein. // Read byte uint8_t PCF8574_IO_Read(uint8_t address) { // prepare PCF8574 for read Write_byte(address, 0xff); // Wait for transmission complete while(!(Port_TWI.MASTER.STATUS & TWI_MASTER_WIF_bm)); // Send address Send_Address_PCF8574(address, 1); // Wait for transmission complete while(!(Port_TWI.MASTER.STATUS & TWI_MASTER_RIF_bm)); // send TWIF Stop Port_TWI.MASTER.CTRLC = TWI_MASTER_CMD_STOP_gc; // Get Data return Port_TWI.MASTER.DATA; } Funktioniert einwandfrei, solange man nicht den P7-Eingang auf "0" legt. Siehe Anhang FF.jpg (eish...sollte 7F heißen) Ist Bit 7 "1" funktioniert es (siehe Anhang BF.jpg) Auf dem Logikanalyser sieht man, dass SDA nicht wieder auf "1" geht, wenn P7 bei der Einlesung auf "0" lag. Was ich nicht verstehe, wieso hat der Status eines Portpins überhaupt Einfluss auf die Bussignale. Wie gesagt, nur das Bit 7. Hab es mit mehreren ICs ausprobiert, SMD, SIL. Identisches Verhalten. Für jeden Tip bin ich dankbar, da mich das Teil in den Wahnsinn treibt :-) LG Rainer

