I2C SCL clock problem - clock signal reduced (using DSO traces)

I am trying to get an ADS1110 voltage break out to work. The sample code does not work.

A few weeks ago the same code (Tutorial – Arduino and the TI ADS1110 16-bit ADC | tronixstuff.com) and breakout board worked. I needed to re-solder and reassemble my circuit and now it does not work.

Attached are a couple of DSO traces:

  • The first trace shows the ADS board working, the second smaller trace when it does not work correctly.
  • You can see that the arduino is sending the SCL and the ADS is returning a signal. So, I assume that the board is working and does not require replacement.
  • I am not using a 4k7 pullup resistor, not a 10k. I ran out, but this does not seem to be affecting the signal.
  • The arduino now only seems to be sending a single byte (8-ish) of SCL signals, and not the 50+ it did before.

What has happened? How to make it work?

Many thanks, George

Everything you see in the second picture is by the Arduino. There is no one else on the bus.
At the begin and end is a START and STOP condition.
Between that are 9 clock pulses (a high level of SCL).
The first 7 pulses is to put the I2C address on the I2C bus. The Arduino is using the SDA for the I2C address. The 8th clock pulse is the R/W bit.
The 9th clock pulse is where the ADS1110 should pull the SDA low for a ACK. But it doesn't do that.

When the Arduino does not get a ACK after the I2C address, then it assumes that it is not there. The Arduino does not send data anymore, only the STOP condition.

Run a I2C Scanner sketch. Try to make it work by checking all the wires. The ADS1110 might be broken.

Thank you very much. That is very helpful.

I have checked the soldering/wiring and it is still not working. I have ran a I2C bus scanner, and it is not showing the ADS1110 at address 0x48, so I think it might be broken.

I will report back when the replacement arrives and is fitted.

Thank you again. The fault ADC was exactly the problem. I replaced it and it now works.

Best wishes, George

Thanks for letting us know. I'm glad it is working :smiley:
The pictures helped a lot to find to the cause.

I'm a big fan of the LHT00SU1 with sigrok/PulseView. Scrolling through data and decoding data is so much more easier on the computer.
https://www.banggood.com/Geekcreit-LHT00SU1-Virtual-Oscilloscope-Logic-Analyzer-I2C-SPI-CAN-Uart-p-988565.html.

I hope you don't get too excited about the I2C bus. I wrote this to scare new users: How to make a reliable I2C bus · Koepel/How-to-use-the-Arduino-Wire-library Wiki · GitHub.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.