For those not familiar with the SC18IS600, it is an SPI to I2C-bus interface chip. I am using a MPC5643L Microcontroller.
I am reading and writing to several different i2c slave addresses using write N bytes, read N bytes and read buffer commands. This works successfully for some time and I can verify each message is being sent correctly multiple times.
After some time the check status command starts only returning a busy status (0xF3 indicating that the i2c bus is busy), but when I probe the i2c bus with an oscilloscope, the sda and scl lines are both high indicating that the bus is free and not busy.
I set a breakpoint on the slave device at the very top of the i2c interrupt and once I get stuck on F3 busy status I no longer receive any more i2c interrupts. (The slave i2c timeout interrupt is still working).
I've tried almost every command possible on the SC18IS600 to try and break out of this state but nothing has worked. My next thought is to hard reset the SC18IS600 whenever this happens but obviously that is not ideal.
I have written to the SC18IS600 internal i2c timeout register however I am not receiving any F8 timeout statuses that I know of.
Any help is much appreciated and let me know if there's any more info I can give.
Thank you!