Адресация I2C

Этот параграф посвящен случаю, когда требуется подключить сразу несколько расширителей GPIO к одному контроллеру. Можно её пропустить, если такой цели не стоит.

Не все устройства с I2C интерфейсом могут похвастаться возможностью смены адреса. Модуль MCP23017 позволяет менять свой адрес в диапазоне от 0x20 до 0x27. На практике это означает, что мы можем подключить к контроллеру аж 8 таких модулей! С суммарным количеством GPIO = 8*16 = 128 штук. Не хило.

Как менять адрес? На обратной стороне модуля есть три перемычки.

Расширитель GPIO ROC

Перемычка тройная. Слева — контакты земли GND, справа — контакты питания VCC, по центру — контакты микросхемы, отвечающие за адресацию I2C.

По-умолчанию, все перемычки соединены с питанием. Если приглядеться, видно, что между центральным контактом и питанием есть дорожка. В таком состоянии адрес устройства равен 0x27.

Если эту дорожку перерезать, а центральный контакт спаять с левым (который GND), то адрес устройства изменится. Ниже приведена таблица всех возможных комбинаций перемычек и соответствующие им адреса.

Адрес микросхемыA0A1A2Адрес I2C
000 (0)GNDGNDGND0x20
001 (1)GNDGNDVCC0x21
010 (2)GNDVCCGND0x22
011 (3)GNDVCCVCC0x23
100 (4)VCCGNDGND0x24
101 (5)VCCGNDVCC0x25
110 (6)VCCVCCGND0x26
111 (7)VCCVCCVCC0x27

Адрес микросхемы — это число, которое мы будем указывать во время инициализации модуля в нашей программе для Ардуино. Адрес I2C — это реальный адрес I2C шины, который мы увидим, если запустим сканер I2C. Рельный адрес может понадобиться при использовании какой-нибудь другой библиотеки или если мы решим работать с модулем без всяким библиотек вовсе.

0

Изменено:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.