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.

MSP432E401Y: MSP432E401

Part Number: MSP432E401Y

 I am communicating with 2 sensor's  over MSP432E401  I2C  . The issue is I get bus busy status randomly in I2C driver and the sensor stops communicating. It gets recovered only after hard reset of MSP430 or on debugger reset (in case  if debugger is connected)

So in this scenario I , tried i driver  with soft resetting the I2C module and doing re-initialization. With this change , the bus gets recovered and without doing any hard reset or debugger reset, the communication with sensor start working properly.

This mechanism works when debugger connected but fails when debugger is disconnected. So want to know if soft reset only works during debugger connected condition?

And secondly what recovery mechanism in MSP432 I can have in state when I2C bus is locked or sending bus busy status.

  • Hi,

    For I2C bus, there should be only one master. It should have this bus busy problem.

    I would advise you to check why it happens by using oscilloscope to catch the wave.

    Eason

  • Currently we have only single master on bus. Also waveform are like SCL =0 and SDA =1 during this event. 

    So is soft reset mechanism a recommended solution when we get faulty bus busy signal

  • Normally, it should not happens, as the communication follow is controlled by MSP432. That is why I ask you to find the route reason about the faulty bus busy signal.

    Looks from you comment "SCL =0 and SDA =1 during this event", it may be the one of the signal(SCL, SDA) is stretcher by the slave. Can you catch  the communication wave before this problem happens?

    Software rest maybe a solution. You can call the I2C init functions again and try to see if it works. However, I still suggest you to find the root cause.