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.

RTOS/IWR1642: IWR1642

Part Number: IWR1642

Tool/software: TI-RTOS

//
Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PINF13_PADAH, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
Pinmux_Set_FuncSel(SOC_XWR16XX_PINF13_PADAH,SOC_XWR16XX_PINF13_PADAH_I2C_SDA);

Pinmux_Set_OverrideCtrl(SOC_XWR16XX_PING14_PADAI, PINMUX_OUTEN_RETAIN_HW_CTRL, PINMUX_INPEN_RETAIN_HW_CTRL);
Pinmux_Set_FuncSel(SOC_XWR16XX_PING14_PADAI,SOC_XWR16XX_PING14_PADAI_I2C_SCL);

In the SDK of IWR1640, after I configured the above 4 lines, the pins G14 and G13 of IWR1642 are both output low level. Why?

I2C is not the default output high level?

  • i2cTransaction.slaveAddress = 0x33;
    i2cTransaction.writeBuf = txData;
    i2cTransaction.writeCount = 0;
    i2cTransaction.readBuf = rxData;
    i2cTransaction.readCount = 1;
    while(1){
    retVal = I2C_transfer(i2cHandle, &i2cTransaction);
    Task_sleep(100);
    if (retVal == false)
    {
    CLI_write("close the .. error n");
    }else{
    CLI_write(".. %d \n", rxData[0]);
    }
    }
    、----------------------------------------------------
    As long as writeCount or readCount is 1, the I2C_transfer function will return. It will not block. As long as writeCount or readCount is greater than 1, the I2C_transfer function will not return.
    The blocking is when I measure the SDA and the SCL pins are all low level. When they are not blocked, they are all high level and have clock signal and data signal.
  • The above code, writeCount or readCount, returns the I2C_transfer function as long as it's 1, it doesn't block, and as long as writeCount or readCount is greater than 1, the I2C_transfer function doesn't return,
    What is the cause of the obstruction?
    The blocking is when I measure the SDA and the SCL pins are all low level. When they are not blocked, they are all high level and have clock signal and data signal.
  • Hello,

    I2C lines requires external pull-ups, tied to external VIO supply.
    Only then when I2C lines are not driven low then you would see high level.

    Could you confirm external pull-ups are present on the board?
    Also which board you are using here?

    Thanks and regards,
    CHETHAN KUMAR Y.B.