This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280039C: I2C hang issue - SCL stuck low in slave mode

Part Number: TMS320F280039C

Dear Champs,

I am asking this for our customer.

F28039 is used as an I2C slave.

We observed that the I2C my hang and SCL cannot be released (stuck low).

The F280039 I2C is hang by the SCL go low.

In this case, the F280039 does not response as expected.

May I know whether toggling I2CMDR.IRS from 0 to 1 is the only way to reset the I2C module or if there are other recommended recovery methods.

I2CMDR.IRS= 0

I2CMDR.IRS=1

Thank you for your support

Best Regards,

Clark

  • Hi Clark,

    Perhaps try adding some 50µs delay into the I2C R/W interrupt loops. The x39c 120MHz SYSCLK seemingly has race conditions noticed in the serial peripherals latching up.in CCS debug. Especially noticed SPI, SCI FIFO signals PZ silicon not behaving as expected. Seemingly local bus arbiter may be stalling in the data pipe to the CPU accumulator or other registers. Certain flags are being ignored or hang in a race condition, CPU 16-bit transparent address latches seem to latch up at times.

    DEVICE_DELAY_US(50);

    We observed that the I2C my hang and SCL cannot be released (stuck low).

  • Hi,

    Our support is out of office today due to US holiday, thank you for your patience.

    Regards,

    Peter

  • Hi Clark, 

    Unfortunately for the I2C module in the F28003x device series, the IRS toggling is the only way to reset the I2C module. There are improvements in the F28P55x device with more flexible clock stretching, if toggling the IRS is not sufficient for you

    Regards,

    Peter