1
\$\begingroup\$

I'm using a 4-channel analog to digital converter, the TI ADS1115. I'm reading the values off the i2c bus with a Raspberry Pi.

They worked ok for a few weeks- they read reliably about 95% of the time. Occasionally, all the channels would read random values for a few minutes, then they would go back to reading correctly. The devices occasionally disappeared off the bus, but that seems to be a known problem with the Raspberry Pi i2c bus.

Yesterday, they completely disappeared off the i2c bus. I can't detect their existence on the bus or read values.

Trying to debug the problem, they reappear when disconnected from inputs. As I connect each input, the probability that the ADC will appear on the bus decreases. With one input channel connected to voltage, the ADC will mostly appear available for read. With all four input channels connected to voltage (all within scale), it never appears available.

I can't explain this behavior- does it make sense to anyone else?

Update: Here's a drawing per request of what appear to be the relevant parts of the circuit. The green box represents stuff that is on a PCB. I've omitted other connections that make the whole thing a lot less comprehensible (mostly 3.3V GPIO), but I think these are all the relevant ones. enter image description here

On additional testing, removing the 1-wire bus or running it on parasitic power resolves the issue. That suggests that the two communication methods are interfering with one another, perhaps through the 3.3v line. While this let's us fix the problem immediately, does anyone understand why this would be occurring so we can more thoroughly fix the problem?

\$\endgroup\$
  • 1
    \$\begingroup\$ Look for spikes on the input voltage, or ground problems. The ADC could be in latchup. \$\endgroup\$ – peufeu Jul 27 '17 at 17:02
  • \$\begingroup\$ In each input, install 1Kohm resistor and 1nF capacitor. The resistor helps protect against overvoltage. The cap helps absorb EMI and RFI. How about a diagram of your PCB? \$\endgroup\$ – analogsystemsrf Jul 27 '17 at 17:20
  • 2
    \$\begingroup\$ Show a circuit! \$\endgroup\$ – Andy aka Jul 27 '17 at 17:51

Your Answer

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

Browse other questions tagged or ask your own question.