Данный минимодуль мультиплексора I2C шины будет полезен в случае, когда по шине I2C работают 2 устройства с одинаковым адресом и при этом нет возможности сменить адреса.
Хорошим примером является датчик газа SGP30. Когда мы хотим использовать пару таких датчиков в своем устройстве, мы должны использовать представленный в данной статье мультиплексор.
Основные параметры:
- различные типы используемых разъемов позволяют легко подключаться ко многим популярным группам модулей,
- мультиплексор виден на шине по адресу 0x70 и запись по этому адресу устанавливает активную шину,
- широкий диапазон питающих напряжений — 2,33…5,5 В, благодаря чему система корректно работает с Arduino, STM Nucleo, Raspberry PI и другими.
Модуль содержит чип двухканального мультиплексора I2C шины типа PCA9540B, внутренняя схема которого показана на следующем рисунке:
Активный канал выбирается прямой настройкой одного регистра и не требует дополнительных управляющих выводов.
Принципиальная схема модуля показана на следующем рисунке:
Сигналы I2C шины вместе с питанием цифровой части подаются на разъемы I2CA…I2CE для подключения в соответствии со стандартами, встречающимися в самых популярных наборах для разработки.
Шина I2C подключается к выводам SCL/SDA, а сигналы от мультиплексора выводится на две группы разъемов I2C0 A…E и I2C1 A…E. Светодиод LD1 показывает наличие питания. Резисторы R2…R7 подтягивают I2C шину к линии питания.
Микросхема PCA9540B имеет адрес 0x70 и имеет только один управляющий регистр, доступный для чтения и записи. По умолчанию после включения питания обе шины отключены и в регистре инициализируется значение 0x00. Запись значения 0x04 выбирает шину I2C0, запись 0x05 шину I2C1, запись остальных значений отключает обе шины.
Для работы с Ардуино есть специализированная библиотека — PCA9540BD.
Скачать рисунок печатной платы (7,2 KiB, скачано: 66)