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.

TMS320C6746: I2C hang occasionally

Part Number: TMS320C6746
Other Parts Discussed in Thread: PCA9535

on customer's system, there are 3 device on I2C0: RTC, ADC, GPIO extension device PCA9535(address 0x20). PULL up 4.7Kohm on DSP side.

sometimes when I2C0 access PCA9535, hangs on SDA hold LOW, SCL hold HIGH as below picture.

From the waveform, it is not hanging on last clock(ACK) slot, so I don't think it is due to SCL impacted by noise.

Customer did experiment to identify it is due to DSP side or PCA9535 side hold the bus, disconnect the bus from all device and add jumper between them, when hang, disconnect the bus, measure on the DSP side, the SDA still hold in LOW. 

RESET I2C can't resume by software reset ICMDR[IRS].

But configure I2C0 pins as GPIO via ICPFUNC and output HIGH, then configure to I2C and reset from software via ICMDR[IRS], can resume, but if resume in this way, following operation hangs more frequency then resume by reset the DSP.

RESET the DSP can resume.

Please help to analysis.

  • Hi Tony,

    We are looking into this. In the meantime, could you please see if the following helps the customer?

    Troubleshooting I2C

    I2C Tips

    Regards,
    Sahin

  • Sahin,

    Thanks for looking into this issue, Further information:

    #1. There are 4 device on I2C0 bus: ADC, PCA, temperature sensor, RTC. on each device end has 0ohm serial resistor. and there are 2 6.8pf capacitor on PCA device end. 

    #2. by remove serial resistor, keep only one device on the bus, and comments out removed device's I2C access code, operate only one device, test over long time, doesn't reproduce this issue. as use the same I2C driver, so should not be software driver issue.

    #3. If remain arbitrary 2 device on the bus, and still operate on only one device,  can reproduce the issue.

    #4. on this batch prototype, only 2 pcs boards has this issue and easy to reproduce. doesn't happen on other boards, maybe test time is not long enough.

    Seems this issue related to hardware, but from waveform as below, does't see signal integrity issue.