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:

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;
}
Bei einer Leseanfrage (natürlich mit Adresse 0x41) bekomme ich dann Errorcode 0x48 - Kein ack zurück auf Lesezugriff.

Was mache ich falsch?

lg
Michi