Raspberry Pi:Библиотеки/WiringPi/Расширения/Подключение чипа MCP23016 (I2C)

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Подключение чипа MCP23016 (I2C)[1]

Библиотека WiringPi поддерживает расширительный модуль для I2C-чипа MCP23016, служащих для оснащения Pi дополнительными GPIO-контактами. MCP23016 – это предшественник MCP23017 и может присутствовать на старых интерфейсных платах.

Raspberry Pi оснащена одной шиной I2C, а MCP230163-битным адресным портом. Таким образом, в теории, к Pi можно подключить до восьми MCP23016, тем самым добавив плате еще 128 контактов для ввода/вывода данных.

Подключение

#include <wiringPi.h>
#include <mcp23016.h>

Инициализация

mcp23017Setup(int pinBase, int i2cAddress) ;

Параметр pinBase может быть любым значением выше «64», а параметр i2cAddress – это адрес девайса на шине I2C (как правило, по умолчанию здесь стоит «0x20», но может быть и другое, если вы используете несколько устройств). Правильный ли адрес использует шина I2C, можно проверить при помощи команды i2cdetect.

Функцию mcp23017Setup() можно вызывать для каждого MCP23016, подключенного к системе – просто укажите в ней другие адрес шины I2C и значение в параметре pinBase.

Количество контактов здесь указывать не нужно – MCP23016 оснащен 16 контактами.

Примечания

  • Перед использованием I2C-устройств нужно будет загрузить в ядро модули для I2C. Для этого впишите в командной строке:
gpio load i2c
  • Чтобы убедиться, что Pi видит ваши девайсы, вы можете просканировать шину I2C при помощи программы i2cdetect. Чип MCP23016, как правило, появляется как «0x20», но при использовании нескольких MCP23016 у каждого из них будет (или должен быть!) собственный адрес.
  • Если у вас Pi версии 1, то команду i2cdetect нужно писать так:
i2cdetect -y 0

Если у вас Pi версии 2, то так:

i2cdetect -y 1
  • Команда gpio поддерживает i2cdetect и автоматически подстраивается под версию платы. Просто впишите:
gpio i2cd
  • Драйвер WiringPi для MCP23016 знает, какую версию Pi вы используете, поэтому никаких мер предосторожности не нужно – ваш код будет работать и с Pi версии 1, и с Pi версии 2.
  • Чип MCP23016 не оснащен подтягивающими/стягивающими резисторами.

См.также

Внешние ссылки