I have a very strange problem here. Let me go through it with you.
I have a processor talking I2C through an isolator (ADUM1250) to three chips.
A DAC, and ADC and an IO expander. The DAC and IO expander work OK, I can access the registers fine. The ADC (Linear LTC2990) does not like me.
I am confident my timing/i2c routine is OK because I have used this chip on its own in the same system.
All chips have an OK VCC on each side, adequate decoupling, all i2c connections are connected and I have 3k pullups on the isolated side.
The LTC2990 is set to address 0x9E. The signals look OK on the scope. The clock speed does not change my result.
Loging analyser output:
Write (byte) to register 0x01. Chip responds with ACK
Write 0x06. Respond with 0x00 and NO ack?!
Why would it respond with all 0s and NO ack?!?!?
Changing the address to 0x9c results in no ACK on the first write and all FF data.
Any smart ideas?