7 years, 2 months ago.

I2C SDA Stuck

Hi. I'm working a project that use C027 board. I'm connected an external ADC IC over I2C (ADS1115) It is smoothly working until modem power on command. After that SCL pin is always high and some measurement I see that empty pins outputs has spikes. Do you knowant any solutions? Thanks.

Question relating to:

The u-blox-C027 is a complete starter kit that allows quick prototyping of a variety of applications for the Internet of Things. The application board has a MAX-M8Q GPS/GNSS receiver and …

1 Answer

7 years, 2 months ago.

When the SDA stack (SDA kept low) happened, it may be recovered by "bus clear". It is explained in I2C spec (section 3.1.16 in "I2C-bus specification and user manual" ).

It explains the bus clear can be done by sending SCL pulses but the MCU may not have manual control SCL.
In such case, the SCL pulse could be made MCU's GPIO pin which is connected to SCL. Configure it as open-drain and assert LOW pulses 9 times.
Or, if it is troublesome to make this mechanism, just reset the slave device without the bus clear.