I2C мультиплексор
(коммутатор, расширитель) TCA9548A предназначен для решения проблемы
подключения нескольких I2C устройств с одинаковыми адресами или имеющими
разные напряжения логических сигналов к одному микроконтроллеру.
Устройство позволяет полностью контролировать процесс доступа ведущего
устройства к ведомым по I2C шине.
Мультиплексор подключается по I2C шине к микроконтроллеру (ведущему
устройству), а датчики и модули (ведомые устройства) подключаются к
портам мультиплексора. Таким образом мультиплексор выступает посредником
в обмене данными между ведущим и ведомыми устройствами. Для начала
необходимо обратиться по адресу мультиплексора (по умолчанию 0x70) и
записать в регистр конфигурации мультиплексора номер порта, с которым
необходимо работать. Можно указать сразу несколько портов. Номер
активного порта определяется единицей в соответствующем разряде
регистра. Например, 00000100 означает, что активным станет третий порт.
Далее работа осуществляется так же, как если бы ведомое устройство было
подключено напрямую к микроконтроллеру. То есть можно использовать
привычные библиотеки и обращаться по адресу ведомого устройства
(дисплея, датчика и т.п.).
Если необходимо переключиться на другое устройство, то для этого
достаточно просто записать в регистр мультиплексора номер нужного порта.
Стоит обратить внимание, что если адрес какого-либо периферийного
устройства совпадает с адресом мультиплексора, то необходимо изменить
адрес мультиплексора с помощью портов A1, A2, A3.
Кроме того, мультиплексор может работать как преобразователь логических
уровней независимо по каждому каналу. Это удобно, если необходимо
подключать 3х вольтовые периферийные модули к 5 В. плате Arduino.
Характеристики:
Количество каналов: 8
Адреса: 0x70 - 0x77
Интерфейс: I2C
Частота: от 0 до 400 кГц
Напряжение питания: 1.65...5.5 В
Размеры: 30,3х20,2 мм
Контакты:
Vin – VCC, вывод питания, +5 В;
GND – GND, вывод питания, «земля»;
SCL – тактирующая линия шины I2C для связи мультиплексора с ведущим
устройством (Arduino, МК);
SDA – линия данных шины I2C для связи мультиплексора с ведущим
устройством (Arduino, МК);
RST – линия сброса, для сброса соединить с GND;
A0 – бит адреса мультиплексора; если соединить с Vin, то адрес
увеличится на 1;
A1 – бит адреса мультиплексора; если соединить с Vin, то адрес
увеличится на 2;
A2 – бит адреса мультиплексора; если соединить с Vin, то адрес
увеличится на 4;
SС0 … SС7 – линии SСL для периферийных устройств;
SD0 … SD7 – линии SDA для периферийных устройств; |