We are using ADB7189B as an analog decoder IC for our video application and trying to configure it via I2C interface. Our I2C interface is running at a slow clock frequency of approx 23 kHz. We are able to successfully read the device ID and all the default register values. However, when we attempt to write to any register via I2C and then read it again, instead of reading the newly configured value, we read the same default value.
Initially, we suspected that the problem might be with our I2C write procedure.We receive ack for each byte(slave address,sub address and data) while writing to slave but, for some reason, value is not updated in the register of the IC. That is why when we read back from the same location (proper I2C read sequence followed i.e. start pattern,slave id(write),sub address,start pattern,slave id(read),read data,stop pattern) we don't get the updated value rather we get the same default reset value of that register. We wait for about 0.3msec before reading back the register.
As mentioned earlier that while register write (for example video selection register 0x01, reset value 0xC8) we receive the ACK signal after sending the device ID, another ACK signal after sending the register address and another ACK signal after sending the data bits. Reception of these ACKs from ADV7189B indicate that the write procedure is OK. But when we attempt to read back any register, the device returns the old default value of the register instead of newly configure value.
Could someone pls suggest how to approach the solution to this problem,