Hello,
my customer is using TIVA processor. This processor is communicating with external IC using i2c.
During EMI exposure, there are some single failures in the i2c communication. That is not a big problem.
If 3 failures happen in 3 successive requests, the i2c should be reset and initialized. This work in most of the cases, but sometimes the reset does not work and the only way to reset the i2c controller in the TIVA is by removing the voltage, and this is of course not good.
My customer is already working in the filtering in the HW, but still they need to solve why sometimes the reset does not work (System reset is not possible, only i2c controller reset). This is the code of reset:
// disable the peripheral
ROM_SysCtlPeripheralDisable(ui32Peripheral);
// reset the peripheral
ROM_SysCtlPeripheralReset(ui32Peripheral);
// enable the peripheral
ROM_SysCtlPeripheralEnable(ui32Peripheral);
// wait until it is ready
while (!ROM_SysCtlPeripheralReady(ui32Peripheral))
{
}
Do you think they are missing something?
Regards,
Jon