Hi,
We are running into a very wired issue.
We have a custom board where we are using three I2C master (AM3505, MSP430 and Battery pack) and four I2C slave devices on a single I2C bus. All these devices (master/slave) are using SMBus protocol.
- AM3505 (master) communicates with all the slave devices at regular interval (10 sec).
- MSP430 (master) communicates with the Battery Charger (slave) every 10 sec.
- Battery pack (master) communicates with the Battery Charger (slave) every 5 sec.
The problem is, after a long run the BQ24765 - Battery Charger (which is one of the slave device) hold the data line low and we are not able to access the bus at all. The only solution to this problem is to disconnect the power to the charger. When we disconnect the power to the charger the Data line goes high and everything starts working (which is obvious since charger has hold the line).
Does anyone encounter such situation ever? Can anyone pls explain the problem and possible solution / debugging points?
(We have thought of a solution where we will implement a timer in MSP430. The timer will check the status of SDA line every 5-10 sec, if the SDA line is low msp430 will reset SDA line to high. This will be a workaround of the problem which we would like to implement only if we don't have any other (proper) solution).
Regards,
Krunal