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: I2C BUS GETS BUSY INDEFINITELY

Part Number: MSP432P401R

Hi,

I am using MSP432P401R EVM and interfacing MAX30100 using I2C. MAX30100 is an Pulse Oximeter Sensor. The I2C BUS goes busy indefinitely after transmission of 1st Byte to the Slave device. I have connected 10K pull up resistors on both the SDA and SCL lines and supplied with 3.3V to both. When I measured the Voltage at both the I2C lines, it showed 1.87V. Also i would mention that there is only one Slave Device i.e. Max30100.

Any help or suggestions?

Regards,

Amit Kotal

  • Amit,
    (1) If you remove the slave and keep the pullups during the indefinite busy state do the lines return to the 3.3V - is the slave trying to hold the line low?
    (2) Does the transaction get to the repeated start state - are you using the repeated start?

    START;
    Send device address + write mode
    Send address of FIFO_WR_PTR;
    REPEATED_START;
    Send device address + read mode
    Read FIFO_WR_PTR;
    STOP;

    (3) Can you verify operation with a simple loop back from one I2C instance to another on the MSP432 EVM?

    Regards,
    Chris
  • Hi Chris,

    Thanks for the reply. The Issue I was facing is solved.
    Initially I was using Pull Up Resistors of 10K,and that was working great with another I2C based sensor. But was not good for the Max30100 Oximeter sensor I guess, since I changed the resistor values to 1K. All was working fine.

    Can you please elaborate what may be the issue wrt to the different values of Pull Up Resistors?

    Reagrds,
    Amit K
  • Amit,

    I cannot speak to the MAX30100. Looking at the datasheet I see a typical circuit which uses 4.7K pullup resistors. Also in this typical diagram there is a distinction between VDD and VDDIO which is not described in the Absolute Max ratings or the electrical characteristics. It could be possible that the potential difference between VDDIO and VDD is causing a transistor to turn on in the MAX30100 causing leakage and therefor it needs a stronger pull-up.

    Chris

**Attention** This is a public forum