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.

CC2652R7: I2C_open() Causes IO Glitch that Looks Like an I2C Start Condition

Part Number: CC2652R7

Hello,

I am developing for the CC2652R7 on version 6.30.01.03 of the SimpleLink CC13xx and CC26xx SDK.

When I call I2C_open() to initialize an I2C interface, the SDA and SCL pins are pulled down briefly during I2CCC26XX_initIO. This appears to the slave device as the start of a transaction and ruins initial communication, as highlighted in the following logic capture:

The problem is resolved if I modify I2CCC26XX_initIO to call GPIO_setConfig with GPIO_CFG_OUT_OD_PU | GPIO_CFG_OUT_HIGH:

Is this a known issue? If so, when will it be fixed?

Is there any workaround that doesn't involve modifying the I2CCC26XX.c driver?

Thank you for your help!
Peter

  • Hi Peter,

    Thank you for notifying us of this issue and providing detailed logic analyzer screenshots.  What value of external I2C line pullups are you using?  I am surprised that the I2C secondary device identifies a false start condition but not the false stop condition, nor does it find what would be a repeated start. Have you tried using I2C_cancel after I2C_open?  This is not currently identified as an issue and your workaround is suitable if it works for your setup.

    Regards,
    Ryan

  • Ryan,

    The pull-up resistors are 20kOhm.

    I've tried calling both I2C_cancel and I2CSupport_masterFinish, but neither worked. In the end, I was able to manually reset the bus after I2C_open by calling I2CMasterControl with I2C_MASTER_CMD_BURST_SEND_START and then I2C_MASTER_CMD_BURST_SEND_ERROR_STOP after a short delay.

    Thank you for your help!
    Peter