Hallo,
ich hab an den I2C-Bus meines RP6 einen PCF8574 angeschlossen, über den ich in weiterer Folge eine Matrix-Tastatur ansteuern will.
Ich habe die drei Addressierungsbits nicht belegt d.h. das Adressierungsbyte ist 0x40 (mit R/W-Bit nicht gesetzt) bzw. 0x41 (R/W-But gesetzt).
Wenn ich den PCF allerdings wie in folgendem Programm anspreche, bekomme ich I2C Errorcode 0x20 d.h. kein Ack zurück auf Schreibzugriff:
Bei einer Leseanfrage (natürlich mit Adresse 0x41) bekomme ich dann Errorcode 0x48 - Kein ack zurück auf Lesezugriff.Code:#include "RP6ControlLib.h" #include "RP6I2CmasterTWI.h" #define PCF8574_Schreiben 0x40 #define PCF8574_Lesen 0x41 void I2C_transmissionError(uint8_t errorState) { writeString_P("\nI2C ERROR - TWI STATE: 0x"); writeInteger(errorState, HEX); writeChar('\n'); } int main(void) { initRP6Control(); I2CTWI_initMaster(100); I2CTWI_setTransmissionErrorHandler(I2C_transmissionError); I2CTWI_transmitByte(PCF8574_Schreiben, 1); while(true) { task_I2CTWI(); } return 0; }
Was mache ich falsch?
lg
Michi







Zitieren
Lesezeichen