i2cdetect не ловит ЛЮБОЙ адрес. Как я могу определить, правильно ли работает I2C?

8

У меня возникают трудности с подключением Raspberry Pi к любому датчику I2C. Я прошел много уроков о том, как заставить драйвер I2C работать, и мои соединения правильные. Тем не менее, i2cdetect (или любой код на основе I2C) не дает мне никакого адреса.

Каковы необходимые шаги по устранению неполадок для этой проблемы? Как я узнаю, повреждены ли контакты или нет?

Я использую MPU6050 и MAG3110 в качестве примера устройств.

Ахмед Фарид
источник

Ответы:

4

Вы смотрите на правильную шину I2C, между версией 1 и версией 2 заголовок GPIO был изменен с использования I2C 0 на I2C 1, см. ELinux - RPi Низкоуровневая периферия для получения подробной информации о различных изменениях выводов.

i2cdetect 0
i2cdetect 1

следует сканировать обе шины отдельно, если ваши устройства появляются после одного из вызовов, то это шина, на которой они находятся.

В противном случае, если у вас есть доступ к осциллографу, вы можете контролировать контакты и i2cdetectснова запускать . Вы ищите уровень напряжения для импульсной цифровой последовательности между высоким (3,3 В) и низким (0 В) на обоих контактах.

Пример трассировки I2C

Если вы уверены, что контакты не работают, попробуйте использовать их как простые выводы GPIO (0 и 1 для 1-й версии, 2 и 3 для 2-й версии) и вручную увеличить их, проверьте, что они высокие (3,3 В), используя мультиметр, затем подведите их к низкому уровню и убедитесь, что они низкие (0 В).

Если вы не знаете, как управлять выводами GPIO вручную, посмотрите здесь пример Python и здесь пример BASH.

Если они не получают высокие и низкие команды, то с выводами что-то не так, если они это делают, но вы все равно не можете заставить работать I2C, тогда ваша проблема требует дальнейшего изучения.

PiBorg
источник
0

Вот действительно хорошее руководство, которое может вам помочь!

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

Маттиас
источник
Добро пожаловать в Raspberry Pi Stack Exchange! Хотя это может теоретически ответить на вопрос, было бы предпочтительным включить сюда основные части ответа и предоставить ссылку для справки. Это помогает защитить от "гниения ссылок", когда информация, на которую ссылаются, больше не там, где она была, когда ссылка была первоначально размещена.
RPiAwesomeness