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.

MSP430F5438A: Suspicious I2C Stop contion

Part Number: MSP430F5438A

Hi,

This question is for the 300ku/yr customer.

They are using I2C in their system and main DSP is master and MSP430 is slave.

while they are using I2C, there is time that SCL keeps low for a long time.

When this happens, it seems like MSP430 recognize it as a STOP condition. Here is the waveform. Blue is SCL, Purple is SDA and Yellow is GPIO by Stop condition interrpt.

As I know, if SCL is low, It is not a stop condition. However, Stop condition interrupt triggered before the real stop condition and this makes severe error in their system. when they used Renesas MCU, they didn't experienced this error.

Here are my questions.

1. recognized as stop condition when SCL is held low for a long time - is this normal operation?

2. How can I block the stop condition interrupt while SCL is held low for a long time?

Best Regards,

Ted

  • The UCSTPIFG should only be set when the I2C module detects a STOP condition (as generated by the master) while in slave mode, independent of clock stretching. Can you confirm that UCSTPIFG is really being set in this state? Are any other ISRs possibly being serviced around the same time? And could the customer possibly be experiencing an issue from errata USCI39?

    Regards,
    Ryan
  • Ther reason for the action above was.. customer inserted printf() inside the ISR. I didn't noticed that.
    Thanks

    Ted

**Attention** This is a public forum