Відповіді:
Тут багато інформації про GPIO GPI: http://elinux.org/Rpi_Low-level_peripherals
Згідно з цим, ви можете запрограмувати будь-які штифти GPIO для I²C, але:
Контакт 3 (SDA0) і контакт 5 (SCL0) попередньо встановлені для використання в якості інтерфейсу I²C. Тож на платі є 1,8 кілограмів, які підтягують резистори.
На цій вікі-сторінці також є кілька прикладів коду GPIO низького рівня для різних мов, які повинні розпочати роботу. Якщо вам потрібне оновлення того, що насправді є ІС , ось такий, який також враховує RPI.
Для конкретного контролю I²C ця бібліотека пітонів може бути корисною, це обговорюється в цій публікації блогу , яка включає зразок коду.
Про це триває багато дискусій. Ось, що мені показує моє читання та возитися:
/etc/modprobe.d/raspi-blacklist.conf
та коментуєте запис i2c-bcm2708
; потім відредагуйте /etc/modules
та додайте i2c-dev
; потім перезавантажте. Тепер у вас повинен бути /dev/i2c-0
спеціальний файл, який дуже простий у використанні.
Ось кілька прикладів, які я зробив
Обладнання:
Як згадував Tapio, апаратне забезпечення добре зафіксовано на веб-сторінці 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.
З повагою