Estoy intentando habilitar el segundo (i2c basado en GPIO) en RPi Zero 2 W, servidor Ubuntu 20.04 para conectar lo siguientesensor. Tenga en cuenta que los pines primarios de i2c están físicamente ocupados ya que RPi se usa como sombrero para otrojunta. He leído toneladas de artículos/preguntas similares, pero no tuve suerte al detectar el sensor.
Aquí está mi/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
También agregué resistencias 2x4.7 para SDA y SCL según las recomendaciones. Bueno, también lo intenté sin resistencias.
cuando corroi2cdetect -l, solo veo un bus predeterminado:
ubuntu@rpi:~$ i2cdetect -l
i2c-1 i2c bcm2835 (i2c@7e804000) I2C adapter
Lo cual obviamente no da nada pori2cdetect -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: -- -- -- -- -- -- -- --
Veo un sensor solo si lo conecto al puerto i2c principal:
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
Aquí hay información adicional del sistema:
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
Tenga en cuenta que ya intenté actualizar el kernel, pero parece que Ubuntu 20.04 se ha quedado atascado en la versión 5.4.
Cualquier idea sería muy apreciada.
ACTUALIZACIONES
- 2022/01/31: agregadodmesg registros.
Respuesta1
Bien, después de varios experimentos se me ocurrió que Ubuntu en RPi ignora /boot/config.txt
las configuraciones por alguna razón (o simplemente las sobrescribe) a favor de /boot/firmware
la ubicación. Examiné /boot/firmware/syscfg.txt
y encontré la misma configuración allí. Entonces simplemente agregué dtoverlay=i2c-gpio,...
ciegamentesyscfgy después de reiniciar, mi sensor i2c apareció mágicamente en la lista. Eso es extraño y decepcionante, ya que todas las guías lo mencionan /boot/config.txt
como un único punto de verdad. Perdí tantas horas en eso.