0

I have a circuit that uses RPI-Zero and some I2C devices are connected [BARO, PCA9685, ADS1115] SDA signal looks ok but CLK signal looks weird.

I can read data and control the sensors/boards. Still I noticed that Baro readings somtimes jumps and get bad data for few readings every a minute or so.

SDA Signal

SCLK Signal

1
  • (1) Perhaps your (a) i2c speed is too high, or (b) wires too long, or (c) too many devices exceeding 400pF. (2) Removing all sensor modules on board pullups might help. (3) Do you get I/O errors from time to time? (4) The following tricks might also help: (d) shift up 3V3 signal to 5V0, (e) Use I2C signal buffer/repeater might also help.
    – tlfong01
    Feb 1 at 5:53

1 Answer 1

2

The glitches in the first of these traces are a major cause for concern, particularly the glitch in the centre of the screen. The i2c bus won't work correctly with this terrible signal; maybe it is just an illusion due to poor oscilloscope connections, but whatever the reason, the clock does need to be cleaner than that.

In the second trace the voltage peaks are fine, and the edges of the transitions are nice and fast (so there isn't too much load capacitance) but the voltage troughs are strangely variable. My first guess would be that the pullup resistance values are too low, so the host can't sink enough current to properly pull the clock down - check to see how many pullup resistors there are, and calculate the resistance of them all in parallel.

Failing that, it is probably a wiring issue - judging by the noise levels, you have a wiring problem anyway; shorten & simplify it, and make sure you have good ground connections on all the devices.

Failing that, check the power supply; if it is borderline being overloaded, strange things can happen.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.