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