Как я могу использовать I2C для общения с датчиками?

Как я могу разговаривать с цифровыми датчиками через интерфейс I²C?

Оборудование:
Какие контакты на GPIO от Raspberry Pi можно использовать?

Программное обеспечение:
Какие библиотеки I²C доступны?

28 голосов | спросил Alex L 26 J0000006Europe/Moscow 2012, 08:34:33

4 ответа


23

Здесь много информации о GPIO RPi: http://elinux.org/Rpi_Low-level_peripherals

В соответствии с этим вы можете запрограммировать любые контакты GPIO для I²C, но:

  

Штырь 3 (SDA0) и контакт 5 (SCL0) предварительно настроены для использования в качестве интерфейса I²C. Таким образом, на этих выводах есть 1,8-килограммовые резисторы на плате.

Эта страница wiki также содержит примеры низкоуровневых примеров GPIO для разных языков, которые должны вас запустить. Если вам нужно обновить то, что на самом деле есть I²C, здесь , который также учитывает RPi.

Для конкретного управления I²C эта библиотека python может быть полезна, обсуждается в этом сообщении в блоге , который содержит пример кода.

ответил Tapio 3 J000000Tuesday12 2012, 15:42:26
7

Об этом много обсуждений. Вот что мое чтение и возиться со мной показывает мне:

  1. Поддержка I2C не встроена в ядро ​​по умолчанию, а Debian «сжимает»
  2. Пользовательское ядро ​​должно быть скомпилировано с модулем i2cspi ( Вот фрагмент дерева GIT )
  3. Драйверы, которые были написаны до сих пор, предназначены только для ядра 3.2 и более поздних версий, и автор не намерен поддерживать 3.1.9+ из-за разрыва дыр в безопасности ( Chris Boot обсуждает драйвер )
  4. Если повезет, дистрибутив Dexx «wheezy», в настоящее время в бета-версии для RasPi, будет иметь этот драйвер. Он поставляется с ядром 3.2.
ответил zerolagtime 4 J000000Wednesday12 2012, 07:01:23
2
ответил John La Rooy 21 PM00000020000005731 2012, 14:47:57
2

Оборудование:

Как упоминалось 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.

Я предпочитаю этот метод над другими, потому что он является платформенным. Вы можете использовать /dev/i2c-1 с другими устройствами, если существует драйвер I²C низкого уровня.

Привет

ответил ManuelSchneid3r 8 J0000006Europe/Moscow 2013, 20:17:56

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132