Ich versuche, den zweiten (GPIO-basierten i2c) auf RPi Zero 2 W, Ubuntu Server 20.04 zu aktivieren, um Folgendes zu verbindenSensor. Beachten Sie, dass die primären i2c-Pins physisch belegt sind, da RPi als Hut für einen anderen verwendet wirdPlanke. Ich habe unzählige Artikel/ähnliche Fragen gelesen, konnte den Sensor aber nicht finden.
Hier ist meins/boot/config.txt:
start_x=1
enable_uart=1
dtparam=i2c_arm=on
dtoverlay=i2c-gpio,bus4,i2c_gpio_delay_us=8,i2c_gpio_sda=23,i2c_gpio_scl=24
Hier ist die eigentliche Verkabelung:
Ich habe außerdem gemäß den Empfehlungen 2x4,7 Widerstände für SDA und SCL hinzugefügt. Nun, ich habe es auch ohne Widerstände versucht.
Wenn ich laufei2cdetect -l, ich sehe nur einen Standardbus:
ubuntu@rpi:~$ i2cdetect -l
i2c-1 i2c bcm2835 (i2c@7e804000) I2C adapter
Was offensichtlich nichts bringt füri2cdetect -y 1:
ubuntu@rpi:~$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Ich sehe einen Sensor nur, wenn ich ihn an den primären I2C-Port anschließe:
ubuntu@rpi:~$ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77
Hier sind zusätzliche Systeminformationen:
ubuntu@rpi:~$ uname -a
Linux rpi 5.4.0-1050-raspi #56-Ubuntu SMP PREEMPT Thu Jan 13 13:09:35 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux
Beachten Sie, dass ich bereits versucht habe, den Kernel zu aktualisieren, aber es scheint, als sei Ubuntu 20.04 bei der Version 5.4 hängengeblieben.
Ich wäre für alle Gedanken sehr dankbar.
AKTUALISIERUNG
- 31.01.2022: hinzugefügtdmesg Protokolle.
Antwort1
Ok, nach einigen Experimenten bin ich auf die Tatsache gestoßen, dass Ubuntu auf RPi /boot/config.txt
Einstellungen aus irgendeinem Grund ignoriert (oder sie einfach überschreibt) zugunsten des /boot/firmware
Standorts. Ich habe nachgesehen /boot/firmware/syscfg.txt
und dort die gleichen Einstellungen gefunden. Also habe ich einfach blind dtoverlay=i2c-gpio,...
hinzugefügtsyscfgund nach dem Neustart erschien mein I2C-Sensor wie von Zauberhand in der Liste. Das ist seltsam und enttäuschend, da es in allen Anleitungen /boot/config.txt
als einziger wahrer Punkt erwähnt wird. Ich habe so viele Stunden damit verschwendet.