0

I've ran into a strange issue with the I²C port of my Raspi 3B: After connecting a TDA7318 audio mixer chip, some other I²C slaved were no longer recognised. So I disconnected the TDA to restore the last working configuration to come up with i2cdetect telling me that there is suddenly a device under every possible address:

pi@autoradio:~ $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 
30: 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 
40: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c UU 4e 4f 
50: 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 
60: 60 61 62 63 64 65 66 67 UU 69 6a 6b 6c 6d 6e 6f 
70: 70 71 72 73 74 75 76 77

The problem is: I can't do anything with my I²C devices (save for the sound card under address 4D) any more. What's wrong here?

UPDATE: Following this instruction (using i2c_bcm2835) does NOT help. The issue persists. Is maybe the fact that the TDA has a Vcc of +9 V related to my issue?

UPDATE #2: Disconnecting all I²C slaves save for the two HATs (sound card & UPS) does not help either. Does that mean that the unwanted connection between SDA and GND is in one of the HATs?

UPDATE #3: After removing everything (including the HATs), the ``gpiotest* utility showed me some trouble with the pull-up resistor on pin #2:

Testing...
Write 1 to gpio 2 failed.
Pull up on gpio 2 failed.
Skipped non-user gpios: 0 1 28 29 30 31 
Tested user gpios: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 
Failed user gpios: 2

UPDATE #4: After another hint, I measured the voltage on the SDA pin: 0.1 V. The resistance between SDA and the 3.3 V pin is 1800 Ω. Is something wrong with the pull-up resistor on the SDA pin?

2
  • Run the test I suggested.
    – joan
    Mar 25, 2021 at 22:09
  • Do I also have to remove the two HATs before running the test?
    – Neppomuk
    Mar 25, 2021 at 22:10

2 Answers 2

2

It's a wiring problem.

You have something pulling the SDA line to ground. This makes it appear that a device is present at every address.

The test you have run confirms that GPIO2 has been destroyed. Presumably 9V has found its way to GPIO2 from the audio module. A possibility is there is a pull-up on the module to Vcc. Anyhow, you need a new Pi. If you want to continue using that module you will need to do more research on its electrical characteristics.

5
  • Isn't such a state dangerous to the Pi's I²C circuitry?
    – Neppomuk
    Mar 25, 2021 at 18:26
  • 1
    Not in itself. You pull a GPIO to ground with a switch to signal low, and pull it to 3V3 with a switch to signal high. It's only a problem if nothing external is pulling the line to ground as that indicates an internal problem (or the GPIO has been set to the wrong mode).
    – joan
    Mar 25, 2021 at 18:29
  • OK, I can exclude the wrong mode, as I haven't changed the config before this issue appeared. What puzzles me, though, is: When I restore the wiring (I'm using a breadboard) to the previous state (with the TDA disconnected from the I²C bus and everathing else left untouched in the last working state), I still get the error.
    – Neppomuk
    Mar 25, 2021 at 18:33
  • 1
    Try elinux.org/R-Pi_Troubleshooting#Testing with nothing connected.
    – joan
    Mar 25, 2021 at 18:43
  • Results see above. And: The TDA datasheet tells me: "Pull-up resistors to positive supply voltage must be connected." But as the Pi has its own ones, this should be no problem?!
    – Neppomuk
    Mar 31, 2021 at 21:20
0

My guess is that when you disconnected the audio mixer chip you also disconnected the pullup resistors on SDA and SCL. Those resistors are required for proper operation of the I2C bus.

4
  • Save for the mixer chip, all I²C slaves I'm using are wither HATs, or breakout boards, which should be equipped with pull-up resistors.
    – Neppomuk
    Mar 25, 2021 at 21:56
  • "Should be..." Can you verify that? Mar 25, 2021 at 22:05
  • 2
    The Pi has hard-wired pull-ups on SDA/SCL. No more should be used.
    – joan
    Mar 25, 2021 at 22:09
  • Both breakouts have their own pull-ups.
    – Neppomuk
    Mar 25, 2021 at 22:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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