I have been using SMBus.c library from the tools section for about a month. Recently, in stress testing, I am getting errors.
After a few thousand reads to 20,000 reads, I get an SMBUS_BUS_BUSY error. Once that happens, the bus is hung until I restart the application.
I can't find anything about how to clear the BUS_BUSY error in either the SMBus user guide ( SW_TM4C_UTILS_UG-2.1.0.12572) or in the I2C documentation ( SW-TM4C-DRL-UG-2.1.0.12573)
The hardware manual for the TM4C1230 describes the registers and says that this happens when the bus is busy. Great. Bus Busy is the time between a start and a stop. I verified that the signal lines are both high, but I can't guarantee that the stop sequence timing was generated. I tried ignoring the busy status and issuing a new read command to clear the error. The hardware seems too smart and will not let that command run.
Any suggestions on how to clear this error?
Thanks


