
TCA9548A
Adafruit · TCA9548A I2C Multiplexer, PID 2717, версия без STEMMA QT
Разделение I²C на восемь ветвей, в том числе для устройств с одинаковыми адресами.
Автор: SLDV LAB
Опубликовано · Обновлено
О МОДУЛЕ
Что делает TCA9548A I2C Multiplexer, PID 2717, версия без STEMMA QT
TCA9548A подключает выбранные ветви I²C к общей стороне SDA/SCL. Датчики с одинаковым адресом размещают на разных ветвях и включают по одному. Сам адрес датчика не меняется; переключатель задаёт видимую часть шины.
Разрешено включать несколько каналов одновременно, но адресные конфликты и суммарная ёмкость тогда возвращаются. Каждой используемой стороне нужны правильно рассчитанные подтяжки. Возможность согласования разных напряжений зависит от VCC и уровня проходного ключа по datasheet; произвольное смешивание 5 В и 1,8 В недопустимо без расчёта. Пример использует одну 5-вольтовую систему.
После подачи питания все ветви отключены. RESET позволяет отключить зависшую ветвь аппаратно, однако в простом примере он лишь подтянут вверх. Рассматривается Adafruit PID 2717 без STEMMA QT. На этой плате RST подтянут вверх, A0–A2 вниз; у выходных SD/SC собственных подтяжек нет. Не переносите эти особенности на похожие модули.
Плата Adafruit TCA9548A, изделие 2717.
TCA9548A. Фото: lady ada / Adafruit. Оригинал: https://learn.adafruit.com/assets/27695 . Лицензия фотографии: CC BY-SA 3.0, https://creativecommons.org/licenses/by-sa/3.0/ . Изменения: Удалён исходный фон вокруг платы; очищены видимые просветы отверстий с сохранением металлических стенок. Пропорциональное масштабирование, размещение на предоставленном фоне и JPEG-сжатие. Геометрия, маркировка и видимые детали не перерисовывались. Для готовой обложки выполнено цветоуправляемое преобразование Adobe RGB в sRGB; исходные RGB-значения и профиль сохранены в прозрачном PNG. Адаптация фотографии распространяется по той же лицензии. Плата Adafruit TCA9548A, изделие 2717.
Схема распиновки
Авторская распиновка SLDV LAB: Adafruit 2717, TCA9548A без STEMMA QT. Сторона компонентов; VIN вверху слева. Оба ряда читаются сверху вниз. Для других ревизий и плат требуется отдельная проверка.
Источники: 1, 2. Авторская схема SLDV LAB по фактам документации.
Характеристики
- Ветвей I²C
- 8
- Адреса чипа
- 0x70–0x77, определяются A0–A2
- Предельная частота I²C чипа
- 400 кГц
- Интерфейс
- I²C
- Питание модуля
- Adafruit PID 2717: Vin 3–5 В по руководству платы; в примере Vin и подтяжки I²C 5 В, логика Uno R3 5 В.
ПРАКТИКА
Подключение
| Контакт модуля | Контакт платы | Назначение |
|---|---|---|
| Vin | 5V | Adafruit PID 2717; питание по руководству платы, логика Uno R3 5 В. |
| GND | GND | Общая земля. |
| SDA | A4 / SDA | Один и тот же сигнал Uno R3; подтяжки к питанию модуля. |
| SCL | A5 / SCL | Порядок контактов на модуле определять по маркировке, не по положению. |
| A0 / A1 / A2 | Не подключать | На Adafruit PID 2717 штатно подтянуты к GND, адрес 0x70. |
| RST | Не подключать | На Adafruit PID 2717 штатно подтянут вверх; краткий LOW выполняет сброс. |
| SD0 / SC0 | SDA / SCL устройства ветви 0 | В примере устройство ветви на 5 В; SD0/SC0 нужны подтяжки к 5 В, например 4,7 кОм, если их нет у устройства. |
Подходит для Arduino. Выберите контакты по документации своей платы.
ВАШ ПРОЕКТ · ВАШ ДАТЧИК
Интегрируйте модуль с ChatGPT
Скопируйте запрос в ChatGPT. Укажите свою плату и среду разработки — получите подключение и код для своего проекта.
Помоги интегрировать TCA9548A. Сначала уточни точную плату модуля, контроллер, среду, питание и задачу. Проверь схему, логические уровни и маркировку контактов; затем дай согласованные подключение, зависимости и полный минимальный пример с обработкой ошибок. Объясни безопасную первичную проверку и ожидаемый результат. Не включай одновременно ветви с конфликтующими адресами; проверь отдельные подтяжки и общий адрес самого мультиплексора.
Библиотеки
Установите библиотеку для своей среды и откройте пример из её документации.
Что именно прописать
- Плата и ядро
Arduino Uno R3; Arduino AVR Boards 1.8.6Распиновка относится к ATmega328P Uno R3; не Uno R4 и не ESP32.
- Адрес
0x70A0–A2 соединены с GND.
- Выбор ветви
Wire.write(1U << channel)Однобайтовая маска; channel от 0 до 7.
- Частота шины
100000Wire.setClock(100000); все узлы должны поддерживать этот режим.
Arduino: полный сканер восьми ветвей
cpp#include <Wire.h>
const uint8_t MUX = 0x70;
bool selectMask(uint8_t mask) {
Wire.beginTransmission(MUX);
Wire.write(mask);
return Wire.endTransmission() == 0;
}
void setup() {
Serial.begin(115200);
Wire.begin();
Wire.setClock(100000);
Wire.setWireTimeout(25000, true);
if (!selectMask(0)) { Serial.println("TCA9548A not found"); return; }
for (uint8_t channel = 0; channel < 8; ++channel) {
if (!selectMask(uint8_t(1U << channel))) {
Serial.println("Channel selection failed");
break;
}
Serial.print("Channel "); Serial.println(channel);
for (uint8_t address = 8; address < 120; ++address) {
if (address == MUX) continue;
Wire.beginTransmission(address);
uint8_t error = Wire.endTransmission();
if (error == 0) { Serial.print(" 0x"); Serial.println(address, HEX); }
else if (error != 2) { Serial.print("Bus error: "); Serial.println(error); }
}
}
if (!selectMask(0)) Serial.println("Cannot disable channels; check RESET");
}
void loop() {}
Полный скетч для Uno R3, Wire из Arduino AVR Boards 1.8.6. Сверены beginTransmission, request API и setWireTimeout; аппаратных тестов и компиляции не было. Устройства на общей стороне видны при сканировании каждой ветви; не путайте их с восемью копиями датчика.
Проекты с этим компонентом
Все проектыСвязанные проекты пока не опубликованы.


