Дополнительный i2c_gpio не обнаружен на Ubuntu Server 20.04 / RPi Zero 2 W / A+

Дополнительный i2c_gpio не обнаружен на Ubuntu Server 20.04 / RPi Zero 2 W / A+

Я пытаюсь включить второй (на базе GPIO i2c) на RPi Zero 2 W, Ubuntu server 20.04, чтобы подключить следующеедатчик. Обратите внимание, что основные контакты 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

Вот фактическая схема подключения:проводка

Я также добавил 2x4.7 резистора для SDA и SCL согласно рекомендациям. Ну, я пробовал и без резисторов.

Когда я бегу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.

Будем очень признательны за любые мысли.

ОБНОВЛЕНИЯ

решение1

Хорошо, после ряда экспериментов я пришел к выводу, что Ubuntu на RPi /boot/config.txtпо какой-то причине игнорирует настройки (или просто перезаписывает их) в пользу /boot/firmwareместоположения. Я проверил /boot/firmware/syscfg.txtи нашел там те же настройки. Поэтому я просто слепо добавил dtoverlay=i2c-gpio,...вsyscfgи после перезагрузки мой датчик i2c волшебным образом появился в списке. Это странно и разочаровывает, так как все руководства упоминают это /boot/config.txtкак единственную точку истины. Я потратил на это столько часов.

Связанный контент