Raspberry Pi:Библиотеки/WiringPi/Расширения/Подключение чипа MCP23016 (I2C)
Содержание | Введение | Продукты | Операционная система | Настройка | Основы Linux | Аппаратные средства | Неисправности | Типовые проблемы | Часто возникающие вопросы | Библиотеки | Примеры |
Черновик |
Подключение чипа MCP23016 (I2C)[1]
Библиотека WiringPi поддерживает расширительный модуль для I2C-чипа MCP23016, служащих для оснащения Pi дополнительными GPIO-контактами. MCP23016 – это предшественник MCP23017 и может присутствовать на старых интерфейсных платах.
Raspberry Pi оснащена одной шиной I2C, а MCP23016 – 3-битным адресным портом. Таким образом, в теории, к 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 не оснащен подтягивающими/стягивающими резисторами.