Hallo Thomas,
da der ATXmega in dem Fall ja als Master arbeitet, sollte es keine Probleme mit dem Auslesen geben. Reagiert der ADAU sonst auf irgendwelche I2C-Kommandos? Vielleicht ist das Problem irgendwo anders. Ich hatte z.B. mal den Fall, daß der TCXO an dem ADAU einen zu kleinen Pegel hatte.
Ich habe gerade nochmal bei einem ADAU1761 das Auslesen probiert. Als AVR der ATXmega256A3U, und das funktioniert einwandfrei. Der ADAU1701 wird wohl gleich arbeiten.
Auszug aus dem Programm:
if SerstatD0 then
ch:= SerInpD0;
case ch of
'i','I': //
ch1:= SerInpD0;
if ch1= 'r' then
TWIoutE(I2CAdrADAU, REG_CLKCTRLREGISTER_IC_1_ADDR, $03); // $4000;
udelay(1);
TWIReadAdr:= $4036;
TWIOutE(I2CAdrADAU,TWIReadAdr); //
TWIInpE(I2CAdrADAU,TWIReadByte); //
Writeln(SeroutD0,'I2CRead4036:' + bytetohex(TWIReadByte));
TWIReadAdr:= $402D;
TWIOutE(I2CAdrADAU,TWIReadAdr); //
TWIInpE(I2CAdrADAU,TWIReadByte); //
Writeln(SeroutD0,'I2CRead402D:' + bytetohex(TWIReadByte));
TWIReadAdr:= $4019;
TWIOutE(I2CAdrADAU,TWIReadAdr); //
TWIInpE(I2CAdrADAU,TWIReadByte); //
Writeln(SeroutD0,'I2CRead4019:' + bytetohex(TWIReadByte));
endif;
|
usw..............
Hyperterminalausgabe: I2CRead4036:03
I2CRead402D:AA
I2CRead4019:13
Gruß
golf