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?