我正在嘗試在 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 電阻。好吧,我也嘗試過不加電阻。
當我跑步時i2c檢測-l,我只看到一條預設總線:
ubuntu@rpi:~$ i2cdetect -l
i2c-1 i2c bcm2835 (i2c@7e804000) I2C adapter
這顯然沒有任何作用i2c檢測-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
一個事實。我為此浪費了很多時間。