Basic information:
Processor: TM4C129DNCPDT
Eeprom: Atmel AT24C256C (256kbits)
Environment: IAR Embedded Workbench
TivaWare_C_Series-2.1.0.12573
Under normal conditions I can write to and read from the EEPROM. I am trying to handle some exceptions now. One of them is a timeout due to some glitch that might occur during the I2C transaction. To test it I force a timeout or, in other words, I do not handle the interrupt generated by the I2C controller. The first trace on the figure bellow is SCL and the second one is SDA (ignore the other two). As you can see, after some bytes being transferred the clock line stays low until the internal SCL timeout detection logic intervenes and the clock goes high. The data line never returns to high even if I force a reset with SysCtlReset(): the I2C just does not work any more. Only if I cycle the power it works again.
So what am I doing wrong and how I can put the channel back into a ready condition?
Thanks.
Elder;