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.

MSP432P401R: when using I2C on TI drivers, the signal of SCL lost stability

Part Number: MSP432P401R

look at the right side of the screenshot above. a synchronous falling edge of SCL and SDA pin broke the transfer, causing MPU6050 can't work.

The error happens randomly in the signal, but always happens. I already pulled up the SCL with a resistor.

How can I solve this problem?

  • Hi Chang,

    Is there a problem running the example I2C code alone?  Does it happen when previous command is Read command or random on W/R?  A NAC and STOP are next to the read command. The I2C command is already stop. What command you want to send at the right, you could check the corresponding  code when the failing edge happen.

  • In my opinion, the example "i2cmasterexample.c" send much less data than my project.

    Secondly, the error on the right happens randomly. It has nothing to do with the left. I just wanted to show the logic analyzer cannot identify the I2C signal no longer just as MPU6050.

    I only use function "i2c_transfer", if the SCL signal were right, the SDA would send data correctly.

  • Hi Chang Lin

    The error happens randomly in the signal, but always happens.

    Could you help to get more information about this? How many devices you have tested? How many devices have got this error? If a device got this error, dose this device go this error more easily to repeat this issue?

    Could you help to check if any reset event happen when the issue happens? You can add a GPIO toggle event at the code initialization part.

    As Allen have mentioned, if you can use our demo code to repeat this issue, that will be speed up to close this issue because we can set up the test on our side at the same time. 

  • I tried 3 MPU6050 module with the same error. Another conclusion about the error is it only happens at the beginning of once I2C communication.

    What do you mean about the "reset event"? Can you explain more? In my code there's nothing about reset.

    I can not follow the demo because I use "motion driver 6.12" from Invensense. I only gave a function about I2C transfer to transplant it.

  • Hi Chang Lin

    The reset event is that the MSP432P401 has been reset by something unexpected. 

    I can not follow the demo because I use "motion driver 6.12" from Invensense

    The demo is just use to do the test, you can download motion driver 6.1 firmware after you do the test.

    By the way, what's the clock speed do you use in this case?