We have a custom platform that utilizes an MSP430 chip that interfaces with another controller via I2C. After a period of high activity between the MSP430 and the controller, we have a situation where SCL is stuck low. When this happens, the rest of the platform is unresponsive. It is unclear if the issue is on the controller side or the MSP430 side. When we get into this state, we have tried the following:
1) After the SCL hang, attach JTAG and perform soft and hard resets
2) After the SCL hang, attach JTAG and restart the MSP430 firmware
3) Used the JTAG debugger to include break points at critical code locations in the I2C logic. This testing added breakpoints at each stage of the SCL low failure: before, during and after. At each stage, the MSP430 state was investigated and verified to be good.
SCL is still stuck low after attempting these steps. The only method we could find that would fix it is to power the entire platform off.
Any information you could provide on what may be causing this state to occur (or how we can further investigate) as well as any insight into how we can get out of this state (since the resets did not appear to fix it).
Any help would be greatly appreciated!