Рейтинг:0

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

флаг pg

Я пытаюсь включить второй (i2c на основе GPIO) на RPi Zero 2 W, сервер Ubuntu 20.04, чтобы подключить следующие датчик. Обратите внимание, что первичные контакты i2c физически заняты, так как RPi используется в качестве шляпы для другого доска. Я прочитал тонны статей/подобных вопросов, но мне не удалось обнаружить датчик.

Вот мой /boot/config.txt:

старт_х=1
enable_uart=1
dtparam=i2c_arm=включено 
dtoverlay=i2c-gpio,bus4,i2c_gpio_delay_us=8,i2c_gpio_sda=23,i2c_gpio_scl=24

Вот собственно проводка: проводка

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

Когда я бегу i2cдетект -l, я вижу только дефолтную шину:

ubuntu@rpi:~$ i2cdetect -l
i2c-1 i2c bcm2835 (i2c@7e804000) адаптер I2C

Что явно ничего не дает i2cdetect -y 1:

ubuntu@rpi:~$ i2cdetect -y 1
     0 1 2 3 4 5 6 7 8 9 а б в г д е
00: -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

Я вижу датчик, только если я подключаю его к основному порту i2c:

ubuntu@rpi:~$ i2cdetect -y 1
     0 1 2 3 4 5 6 7 8 9 а б в г д е
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 Чт, 13 января, 13:09:35 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

Обратите внимание, что я уже пытался обновить ядро, но похоже, что Ubuntu 20.04 застрял на версии 5.4.

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

ОБНОВЛЕНИЯ

флаг ch
Вы видите что-то интересное относительно вашего интерфейса в выводе `dmesg`?
Sergey Korol avatar
флаг pg
@Serg Я обновил пост ссылкой на журнал dmesg. Я вижу некоторые проблемы с spi и кодировками. Но я не уверен, что это имеет прямое отношение к исходной проблеме. Возможно, вы найдете там что-то интересное.
флаг ch
Трудно сказать определенно в вашем случае, так как вы пробовали много вещей. Во-первых, возможно, опустить определение шины, т.е. удалить `bus4` из `dtoverlay` - пусть это будет предоставлено системой. А также, возможно, попытаться явно включить поддержку соответствующего устройства `i2c-rtc`.
Sergey Korol avatar
флаг pg
@Serg попытался убрать автобус, но это не помогло. Однако не уверен в явной поддержке устройств `i2c-rtc`. Вы имели в виду что-то вроде этого: https://gist.github.com/Lahorde/2bc5e4a3b69fc6ca5797?
флаг ch
Да, что-то вроде того, что вы указали в ссылке GitHub.
Рейтинг:0
флаг pg

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

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.