Hi team,
One if our customer is observing issue with I2C SDA line. After initializing the I2C interface, the SDA line remains continuously busy, preventing communication with connected devices.
Customer has observed that when it is forcefully pulled the SDA line to ground (GND), the communication was successfully established.
Later two different scenarios is observed related to I2C configuration:
What could be the reason behind this differing behavior across samples?
Any insights or recommendations on how to resolve this issue?
Some additional information:
1) RTD version: RTD3.0.0
2) Observing in RTOS.
3) I2C pins configuration
4) As of now only one slave is connected in I2C bus.
I2C Address: Read 0xEF, Write 0xEE
Thanks & regards,
Krishnakumar V
Hi @Krish1510,
If either SCL or SDA is low, the I2C bus is no longer considered idle.
Based on that, it seems the SDA line is not being pulled up by the external pull-up resistor on that pin.
Have you measured the bus using an oscilloscope to confirm this?
Could you please elaborate on the BUSIDLE scenarios?
Keep in mind that BUSIDLE only configures the bus idle timeout period.
For the bus to be considered idle, both SCL and SDA must remain HIGH for longer than the number of cycles defined in the BUSIDLE setting.
If you're observing unexpected behavior with the S32K3xx series, it's always a good idea to check the system clock configuration.
It must be set to one of the valid options—such as Table 157, Option A: High Performance Mode (CORE_CLK @ 160 MHz).
Regards,
Daniel