Ubuntu Server 20.04 / RPi Zero 2 W / A+ 上未检测到额外的 i2c_gpio

Ubuntu Server 20.04 / RPi Zero 2 W / A+ 上未检测到额外的 i2c_gpio

我正在尝试在 RPi Zero 2 W、Ubuntu 服务器 20.04 上启用第二个(基于 GPIO 的 i2c)来连接以下传感器。请注意,主 i2c 引脚在物理上已被占用,因为 RPi 被用作另一个木板。我读过大量文章/类似的问题,但还是没能检测到传感器。

这是我的/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

实际接线如下:接线

我还根据建议为 SDA 和 SCL 添加了 2x4.7 电阻。好吧,我也尝试了不使用电阻。

当我跑步时i2cdetect-l,我只看到一条默认总线:

ubuntu@rpi:~$ i2cdetect -l
i2c-1   i2c         bcm2835 (i2c@7e804000)              I2C adapter

这显然没有任何意义i2cdetect-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: -- -- -- -- -- -- -- -- 

仅当我将其连接到主 i2c 端口时,我才能看到传感器:

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 

以下是其他系统信息:

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

请注意,我已经尝试升级内核,但 Ubuntu 20.04 似乎停留在 5.4 版本。

任何想法都将不胜感激。

更新

  • 2022/01/31: 添加消息 日志

答案1

好的,经过多次实验,我发现 RPi 上的 Ubuntu 会/boot/config.txt出于某种原因忽略设置(或直接覆盖它们)而选择/boot/firmware位置。我检查了一下/boot/firmware/syscfg.txt,发现那里也有相同的设置。所以我只是盲目地添加dtoverlay=i2c-gpio,...系统配置重启后,我的 i2c 传感器神奇地出现在列表中。这很奇怪,也很令人失望,因为所有指南都提到了/boot/config.txt这一点。我为此浪费了很多时间。

相关内容