O i2cdetect não captura QUALQUER endereço. Como posso saber se o I2C está funcionando corretamente?

8

Estou tendo dificuldades em conectar o Raspberry Pi a basicamente qualquer sensor I2C. Passei por muitos tutoriais sobre como fazer o driver I2C funcionar e minhas conexões estão corretas. Ainda assim, o i2cdetect (ou qualquer código baseado em I2C) não me fornece nenhum endereço.

Quais são as etapas de solução de problemas necessárias para esse problema? Como sei se os pinos estão destruídos ou não?

Estou usando MPU6050 e MAG3110 como dispositivos de exemplo.

Ahmed Farid
fonte

Respostas:

4

Você está olhando para o barramento I2C correto, entre rev 1 e rev 2, o cabeçalho GPIO foi alterado de I2C 0 para I2C 1; consulte eLinux - RPi Periféricos de baixo nível para obter detalhes sobre as várias alterações de pinos.

i2cdetect 0
i2cdetect 1

deve verificar os dois barramentos separadamente, se seus dispositivos aparecerem após uma das chamadas, então esse é o barramento em que estão.

Caso contrário, se você tiver acesso a um osciloscópio, poderá monitorar os pinos e executar i2cdetectnovamente. Você está procurando o nível de tensão para pulsar uma sequência digital entre alta (3,3v) e baixa (0v) nos dois pinos.

Exemplo de rastreamento I2C

Se você tiver certeza de que os pinos não estão funcionando, tente usá-los como pinos GPIO simples (0 e 1 para rev 1, 2 e 3 para rev 2) e elevá-los manualmente, verifique se estão altos (3,3v) usando um multímetro, então reduza-os e verifique se estão baixos (0v).

Se você não souber dirigir os pinos GPIO manualmente, consulte aqui um exemplo de Python e aqui um exemplo de BASH.

Se eles não forem altos e baixos no comando, há algo errado com os pinos, se o fizerem, mas você ainda não conseguirá que o I2C funcione, seu problema precisará de uma investigação mais aprofundada.

PiBorg
fonte
0

Aqui está um guia realmente bom que pode ajudá-lo!

http://www.instructables.com/id/Raspberry-Pi-I2C-Python/?ALLSTEPS

Mattias
fonte
Bem-vindo ao Raspberry Pi Stack Exchange! Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência. Isso ajuda a proteger contra a "podridão do link", onde as informações vinculadas não estão mais onde estavam quando o link foi originalmente publicado.
RPiAwesomeness