I am working on TI RTOS 2.14. My application is on CC2650. I am trying to interface SHT30 using I2C driver. While the I2C driver works fine for the OPT3001 ambient light sensor. I am getting NACK from the sensor when I try to read data from SHT30 sensor. I did some debugging using logic analyzer and found out that the SCL timing is not as per the datasheet. Please find relevant screenshots below: (i tested using arduino wire library and it works, so its not a hardware issue.):
PS: i am using i2c.h and I2CCC26XX.h
The screenshot above shows the correct timing. Notice the time when SDA toggles - it coincides with the falling edge of the SCL. This is also mentioned in the SHT30 datasheet, which says that this time difference should not go over 0.9us ("valid time"):
Below is the screenshot of the I2C signal that is generated using TI RTOS I2C DRIVER. You can notice the difference from the arduino generated signal. The valid time is out of the allowed range according to the datasheet:
Could some TI RTOS expert help me out? How can I fix this timing issue? I am running the I2C code as a task in my code. The priority is highest for this.