Beagle Bone Black Проблемы с I2C2 - PullRequest
0 голосов
/ 10 января 2020

У меня проблемы с использованием датчика I2 C с Beagle Bone Black (BBB). BBB запускает только что обновленное изображение Ubuntu 18.04 специально для BBB.

Я подключил датчик (VIN, GND, SCL, SDA) к соответствующим контактам I2C2 (4, 2, 19, 20) на BBB, используя приведенную ниже распиновку.

BBB Pinout Предполагается, что датчик использует адрес 0x40, но при сканировании I2C2 (с использованием i2cdetect -r 2) датчик не отображается.

i2cdetect -r 2 output

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

Во многих местах я читал, что I2C2 не может быть включен по умолчанию, но я предполагаю, что он включен в моем случае как я могу сканировать I2C2 без получения ошибки. Это предположение неверно? Опять же, это только что прошитая BBB, и я ничего не включил / не отключил - она ​​должна быть в состоянии по умолчанию.

Я также проверил подключение моих проводов между датчиком и BBB. Напряжение между VIN и GND на чипе составляет 3,3 В, поэтому он определенно получает питание.

Почему я не могу подключиться к своим датчикам I2 C с помощью BBB?

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Вот несколько вещей, которые вы должны проверить (в случайном порядке).

Перечислите все шины I2 C с i2cdetect -l и попробуйте их все. В зависимости от платформы номер шины i2 c в Linux может отличаться от номера периферийного устройства, используемого в спецификации и распиновке. Например, «I2C2» может быть шиной i2 c -1 или i2 c -3 в Linux).

Используйте осциллограф или логический анализатор, чтобы проверить, управляются ли линии SCL и SDA. Если они не проверяют номер автобуса, как указано выше. Если они есть, то проверьте, дает ли устройство ACK; в противном случае ничего больше не будет работать: перепроверьте адрес ведомого чипа. Существуют дешевые логические анализаторы, которые вы можете купить и использовать с pulseview .

. Просто загрузите драйвер Linux для своего чипа (см. документация по ядру о том, как сделать это из пространства пользователя для быстрого теста). Затем проверьте, появляется ли устройство, или используйте dmesg, чтобы увидеть какие-либо сообщения об ошибках ядра во время проверки.

0 голосов
/ 11 января 2020

Возможно, используемый вами источник устарел или не подходит для i2 c.

Кроме того, вы можете использовать эту команду, чтобы убедиться, что контакты i2c2 доступны:

config-pin p9.21 i2c

config-pin p9.22 i2c

Это также может работать. Если это не работает, пожалуйста, ответьте со всем вашим источником.

Seth

PS Кроме того, если у вас есть время, вы можете получить библиотеку i2 c для использования, если ваше программное обеспечение не удается настроить собственную библиотеку i2 c. У них есть smbus2, который вы можете установить вместе с pip и другими библиотеками i2 c.

...