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
						
					
Lesezeichen