I'm currently using an AD7417 to perform Analog to digital conversion. An FPGA
catchs the data from the AD7417 throught an I2C bus. Sometime, its seems that
the SDA line is tied to '0' after the board initialization- and it is
impossible to get the data from the AD7417. Is there something to do to avoid
this problem ?
On the AD7417 if the I2C interface does not receive a proper STOP command and
the number of data bytes read back is greater than three, then the internal
state machine could go into an unknown state and lock the I2C bus. This could
be happening here as this lock condition is not guaranteed to occur at every
instance a STOP command fails to be sent but more often than not it will happen.
There are only two ways to prevent this lock condition from happening :
1. Reset the AD7417 I2C interface after the reset/reboot of the board. This can
only be done by powering the part off and on.
2. Ensure a proper STOP command is issued before the board reset occurs.