Can you post the output of your
raspi-gpio get
and
cat /etc/modules
(make sure /etc/modules included i2c-dev)
ALSO, another thing to try, on the CM4 is i2c6.
[attachment=1338]
Notice that GPIO 0/1 can be SDA0/SCL0 or SDA6/SCL6. To try that, remove all the other i2c stuff in config.txt and use something like (untested)
dtoverlay=i2c6,pins_0_1
(and then 'i2cdetect -y 6' to test)
Instead of changing the config.txt file and rebooting, you can change the pin functions using 'raspi-gpio set'
raspi-gpio set 0-1 ip pn #this will configure GPIO0 and GPIO1 as inputs with no pullup/down (sort of set them to nothing, really)
raspi-gpio set 0-1 a5 #on your CM4, this SHOULD (I can't test) set GPIO0 and GPIO1 to i2c6
You would want to make sure that nothing else is doing i2c stuff, so maybe do
raspi-gpio set 44-45 ip pn
raspi-gpio set 2-3 ip pn
and then try these 4 commands
raspi-gpio set 0-1 a0
i2cdetect -y 0
raspi-gpio set 0-1 a5
i2cdetect -y 6
MORE info about i2c6 pasted from
https://github.com/raspberrypi/linux/tre...s/overlays
Code:
Name: i2c6
Info: Enable the i2c6 bus. BCM2711 only.
Load: dtoverlay=i2c6,<param>
Params: pins_0_1 Use GPIOs 0 and 1
pins_22_23 Use GPIOs 22 and 23 (default)
baudrate Set the baudrate for the interface (default "100000")
ALSO, I actually think you should have used GPIO2 and GPIO3 to solder to, because the CM4 uses SDA1 and SCL1 (i2c1) on those pins. It would therefore be more similar to how the normal Freeplay CM3 does things. Having said that, I think GPIO0 and GPIO1 should work as i2c0 or i2c6 based on everything else I've seen.
When i2cdetect is really slow (like you mentioned), that's typically been some sort of hardware problem in my experience. I looked at your photos, and it looks like you have SDA soldered to SDA and SCL->SCL. It's a little hard to follow the wires, though. Make sure that:
FPCM3 addon GPIO44: Connects to GPIO0 = pin3 (or GPIO2 = pin9)
FPCM3 addon GPIO45: Connects to GPIO1 = pin5 (or GPIO3 = pin11)