← All parts
TCA9548A I2C Multiplexer
TCA9548A
Texas Instrumentsinterface io display
The TCA9548A is a low-voltage 1-to-8 bidirectional I2C switch that fans an upstream bus out to eight selectable channels. It resolves target address conflicts and supports voltage-level translation between 1.8V and 5V buses.
In stock
Specifications
10- Operating Voltage
- 1.65 to 5.5 V
- Supply Current
- 50 µA
- Standby Current Max
- 2 µA
- Channels
- 8
- Interface
- I2C
- I2c Clock Speed Max
- 400 kHz
- Switch On Resistance
- 10 Ω
- I2c Address Pins
- 3
- Operating Temperature Range
- -40 to 125 °C
- Package Types
- TSSOP-24, VQFN-24, VSSOP-24
Pinout
24| Pin | Name | Functions | Notes |
|---|---|---|---|
| 1 | A0 | — | Address input 0. Connect directly to VCC or ground |
| 2 | A1 | — | Address input 1. Connect directly to VCC or ground |
| 3 | RESET | — | Active-low reset input. Pull up to VCC if not used |
| 4 | SD0 | I2C | Serial data channel 0 |
| 5 | SC0 | I2C | Serial clock channel 0 |
| 6 | SD1 | I2C | Serial data channel 1 |
| 7 | SC1 | I2C | Serial clock channel 1 |
| 8 | SD2 | I2C | Serial data channel 2 |
| 9 | SC2 | I2C | Serial clock channel 2 |
| 10 | SD3 | I2C | Serial data channel 3 |
| 11 | SC3 | I2C | Serial clock channel 3 |
| 12 | GND | GND | Ground |
| 13 | SD4 | I2C | Serial data channel 4 |
| 14 | SC4 | I2C | Serial clock channel 4 |
| 15 | SD5 | I2C | Serial data channel 5 |
| 16 | SC5 | I2C | Serial clock channel 5 |
| 17 | SD6 | I2C | Serial data channel 6 |
| 18 | SC6 | I2C | Serial clock channel 6 |
| 19 | SD7 | I2C | Serial data channel 7 |
| 20 | SC7 | I2C | Serial clock channel 7 |
| 21 | A2 | — | Address input 2. Connect directly to VCC or ground |
| 22 | SCL | I2C | Upstream serial clock bus |
| 23 | SDA | I2C | Upstream serial data bus |
| 24 | VCC | POWER | Supply voltage |
Interactive pinout
Highlight:
TCA9548A
Click a pin to copy its name · tap a tag above to spotlight a bus.
Starter code
Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.
Arduino (C++)
arduino
// TCA9548A 8-channel I2C multiplexer — community starter example
// No library needed: write a bitmask to the mux to pick channel(s).
#include <Wire.h>
const byte MUX = 0x70; // A2..A0 = 000
void selectChannel(uint8_t ch) { // ch 0..7
Wire.beginTransmission(MUX);
Wire.write(1 << ch);
Wire.endTransmission();
}
void setup() {
Serial.begin(115200);
Wire.begin();
}
void loop() {
selectChannel(0); // now talk to the device on channel 0
// ... your sensor.read() here ...
delay(1000);
}MicroPython
python
# TCA9548A I2C mux (ESP32) — community starter example
# No driver needed: write 1<<channel to the mux address
from machine import Pin, I2C
import time
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
MUX = 0x70
def select(ch):
i2c.writeto(MUX, bytes([1 << ch]))
while True:
select(0) # talk to channel 0's device
time.sleep(1)Wiring
| Pin | Arduino Uno R3 | ESP32 DevKitC (WROOM-32) | Notes |
|---|---|---|---|
| VCC | +5V | 3V3 | 1.65-5.5 V |
| GND | GND | GND | |
| SCL | A5/SCL | GPIO22 | I2C clock |
| SDA | A4/SDA | GPIO21 | I2C data |
| SD0..SC7 | - | - | 8 downstream I2C buses (SDn/SCn) to your sensors |
| A0/A1/A2 | - | - | Address select -> 0x70-0x77 |
Typical uses
- Putting many same-address I2C devices on one bus
- Expanding past I2C address conflicts