When looking for an I2C analog switch / multiplexer it's important to understand some of the specifications of the I2C standard:
- 2-wire open-drain protocol
- Voltage levels: 1.2V , 1.8V , 3.3V and 5V
- Frequency: Typically ~400kHz but can get as high as 5MHz in unique cases
- Max Bus Capacitance : 400pF for both Standard and Fast Modes and up to 550pF for Fast Mode Plus
With the above knowledge and keeping in mind that I2C is a 2-wire open-drain protocol, the following are 4 key specifications for your analog switch / multiplexer that will help pick the correct device for your system:
- The configuration of the analog switch / multiplexer. As stated, I2C is a 2-wire protocol, so a 2 channel device will be needed. To multiplex between two peripheral buses or two controllers, a 2:1 device should be placed between the controller and peripherals. Therefore, a 2 channel 2:1 device would be needed. You aren't limited per se to only 2 peripheral/controllers. As the number of peripherals/controllers increases, so does the configuration, but the channel count will remain the same. (i.e. 4 peripherals would require a 2 channel 4:1).
- The voltage levels of I2C may be 1.2V, 1.8V, 3.3V or 5V so it's important to pick a device that can support the I2C levels incorporated in your system.
- The On-capacitance of the analog switch / multiplexer. The I2C standard specifies a maximum bus capacitance of 400pF for both Standard and Fast Modes and up to 550pF for Fast Mode Plus. While this allows for some room for margin, it's still best to try and minimize the capacitance accumulated from the multiplexer itself. How much room for capacitance the analog switch / multiplexer can add to the system will vary based on the use case but should be taken into consideration when selecting an analog switch / multiplexer for switching I2C signals.
- The bandwidth is typically not going to be a limiting factor here but it's still good practice to check. I2C standard frequency is 100kHz, 400kHz in Fast mode, 3.4Mhz for High speed and 5MHz for ultra-fast mode. These are relatively lower frequencies and all of TI's analog switches / multiplexers will be able to support even the fastest I2C signals.
The below table is a recommendation for multiplexers that can pass I2C signals on the data signal paths. These devices are controlled via GPIO. For devices controlled via I2C inputs please see I2C switches & multiplexers. The below is not an exhaustive list of all devices that can support I2C signals. The link provided at the bottom of the table includes more devices that can be used for I2C purposes.
I2C compatible switches for 1 Controller to 2 Peripheral Buses OR 2 Controllers to 1 Peripheral Buses |
|||||
I2C Voltage Levels |
Supply Voltage Levels |
Device | Features | PKG | Body Size (L x W) |
1.2V |
1.8V |
TS5A623157 |
Overshoot Protection |
VSSOP | 3 mm x 3 mm |
1.8V 3.3V 5V |
TS5A23159 | Powered-off protection | UQFN | 1.8 mm x 1.4 mm | |
VSSOP | 3.0 mm x 3.0 mm | ||||
1.8V 3.3V 5V |
Automotive qualified |
VSSOP |
3.0 mm x 3.0 mm | ||
For instances where an I2C bus is needing to be connected/disconnect and not multiplexed, a 2 channel 1:1 such as the TS5A23166 is an example that may support this need.
**For more information on the I2C bus please see Understanding the I2C Bus, I2C Bus Pullup Resistor Calculation and TI Precision Labs – Switches and muxes: How to select the right signal switch for an I2C application