Как я могу общаться с цифровыми датчиками через интерфейс I²C?
Аппаратное обеспечение:
Какие контакты на GPIO Raspberry Pi можно использовать?
Программное обеспечение:
Какие библиотеки I²C доступны?
Здесь много информации о 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
для генерации символов для шин. Подать заявление ...для загрузки их на лету. Подать заявление ...
и 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 низкого уровня.С уважением
источник