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.

CC1312R: Glitch on I2C lines after upgrading to SDK 6.10 (removal of pin driver)

Part Number: CC1312R

Hi,

We are upgrading to TI SDK 6.10 and found an issue with the I2C driver. The issue is that we see a glitch on the SCL and SDA lines when calling I2C_open and on the following I2C transfer we get a NAK. This can not be seen when using SDK 5.20.

SDK 5.20

SDK 6.10

In SDK 5.40 the pin driver was removed from several drivers including the I2C driver and was replaced by calling the GPIO driver directly as you know.

We see the problem when the GPIO pins are configured in the I2C driver in function  I2CCC26XX_initIO  (I2CCC26XX.c). As you can see below the SDA and SCL was configured as inputs in the SDK 5.20 I2C driver but in the new one they are configured as outputs and this seems to cause the glitch. I don’t know if this was the reason for configuring the pins as inputs in the old driver, and I’m not sure if they are later on configured as outputs.

 

SDK 5.20 - when configuring pins in I2CCC26XX_initIO

    i2cPinTable[i++] = i2cPins.pinSDA | PIN_INPUT_EN | PIN_PULLUP | PIN_OPENDRAIN;

    i2cPinTable[i++] = i2cPins.pinSCL | PIN_INPUT_EN | PIN_PULLUP | PIN_OPENDRAIN;

 

SDK 5.40/SDK 6.10 - when configuring pins in I2CCC26XX_initIO

    GPIO_setConfig(object->sdaPin, GPIO_CFG_OUT_OD_PU);

    GPIO_setMux(object->sdaPin, hwAttrs->sdaPinMux);

 

    GPIO_setConfig(object->sclPin, GPIO_CFG_OUT_OD_PU);

    GPIO_setMux(object->sclPin, hwAttrs->sclPinMux);

 

Could you please have a look into this?

BR,

Johannes Kjällquist