Ответы:
Здесь много информации о GPIO RPi: http://elinux.org/Rpi_Low-level_peripherals
В соответствии с этим вы можете запрограммировать любые выводы GPIO для I²C, но:
Вывод 3 (SDA0) и вывод 5 (SCL0) предварительно настроены для использования в качестве интерфейса I²C. Таким образом, на плате для этих выводов есть нагрузочные резисторы 1,8 кОм.
На этой вики-странице также есть несколько примеров низкоуровневого кода GPIO для разных языков, с которых стоит начать. Если вам нужно освежить в памяти то, что I²C на самом деле, вот тот, который также принимает во внимание RPi.
Для конкретного контроля I²C эта библиотека python может быть полезна, это обсуждается в этой записи блога , которая включает пример кода.
Много дискуссий происходит об этом. Вот что показывает мое чтение и возня:
/etc/modprobe.d/raspi-blacklist.conf
и комментируете запись для i2c-bcm2708
; затем отредактируйте /etc/modules
и добавьте i2c-dev
; затем перезагрузите компьютер. Теперь у вас должен быть /dev/i2c-0
специальный файл, который очень прост в использовании.
Вот несколько примеров, которые я сделал
Оборудование:
Как упомянул Тапио, оборудование хорошо документировано на http://elinux.org/Rpi_Low-level_peripherals
Програмное обеспечение:
В пользовательском пространстве Linux есть заголовок i2c-dev ( #include <linux/i2c-dev.h>
). Кроме того, вам нужен персонаж, с которого можно читать. Это можно сделать, загрузив правильные модули. i2c_bcm2708
для драйвера низкого уровня и i2c-dev
для генерации символов для шин. Подать заявление ...
sudo modprobe -r i2c_bcm2708
sudo modprobe i2c_bcm2708 baudrate=<your preferred baudrate>
для загрузки их на лету. Подать заявление ...
sudo sh -c 'echo "i2c-dev" >> /etc/modules'
sudo sh -c 'echo "options i2c_bcm2708 baudrate=<your preferred baudrate>\n" > /etc/modprobe.d/custom.conf
и unblacklist i2c_bcm2708
в , /etc/modprobe.d/raspi-blacklist.conf
чтобы сделать /dev/i2c-0
и /dev/i2c-1
показать на постоянной основе .
Отныне вы можете следовать подсказкам о том, как использовать I²C del maestro сам.
Я предпочитаю этот метод другим, потому что он платформенный. Вы можете использовать и linux/i2c-dev.h
с другими устройствами, если существует драйвер I²C низкого уровня.
С уважением