Estou tentando habilitar o segundo (i2c baseado em GPIO) no RPi Zero 2 W, servidor Ubuntu 20.04 para conectar o seguintesensor. Observe que os pinos i2c primários estão fisicamente ocupados, pois o RPi é usado como chapéu para outroquadro. Eu li muitos artigos/perguntas semelhantes, mas não tive sorte em detectar o sensor.
Aqui está o meu/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
Também adicionei resistores 2x4,7 para SDA e SCL de acordo com as recomendações. Bem, eu tentei sem resistores também.
Quando eu corroi2cdetect -l, vejo apenas um barramento padrão:
ubuntu@rpi:~$ i2cdetect -l
i2c-1 i2c bcm2835 (i2c@7e804000) I2C adapter
O que obviamente não dá nada parai2cdetect -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: -- -- -- -- -- -- -- --
Vejo um sensor somente se eu conectá-lo à porta i2c primária:
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
Aqui estão informações adicionais do 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
Observe que já tentei atualizar o kernel, mas parece que o Ubuntu 20.04 travou na versão 5.4.
Qualquer pensamento seria muito apreciado.
ATUALIZAÇÕES
- 31/01/2022: adicionadodmesg Histórico.
Responder1
Ok, depois de uma série de experimentos, descobri que o Ubuntu no RPi ignora /boot/config.txt
as configurações por algum motivo (ou apenas as sobrescreve) em favor da /boot/firmware
localização. Eu examinei /boot/firmware/syscfg.txt
e encontrei as mesmas configurações lá. Então eu adicionei dtoverlay=i2c-gpio,...
cegamentesyscfge após a reinicialização, meu sensor i2c apareceu magicamente na lista. Isso é estranho e decepcionante, pois todos os guias mencionam /boot/config.txt
como um único ponto de verdade. Perdi tantas horas nisso.