SparkFun will be closed Monday 7/4/2022 for the 4th of July holiday. Orders placed after 2 pm MT on Friday 7/1/2022 will be processed on Tuesday 7/6/2022. SparkFun Support will also resume on Tuesday 7/6/2022. Have a safe holiday!


I2C MUX 2 Click is a quad bidirectional translating I2C and SMBus switch with reset and interrupt functions, intended for applications with I2C peripheral address conflicts. It features a quad bidirectional translating switch controlled via the I2C bus, labeled as TCA9545A from Texas Instruments. Four interrupt inputs (INT3–INT0), one for each of the downstream pairs, are provided on Click board™. One interrupt (INT) output acts as an AND of the four interrupt inputs. Click has two address jumpers, allowing up to four TCA9545A devices on the same bus. I2C MUX 2 Click allows voltage translation between 1.8V, 2.5V, 3.3V, and 5V buses, and also supports hot insertion. The TCA9546A can work on a 0 - 400 kHz clock frequency range and is ideal for communication with numerous devices that share the identical peripheral address on the same bus.

I2C MUX 2 Click is supported by a mikroSDK compliant library, which includes functions that simplify software development.

I2C MUX 2 Click uses the TCA9545A, a 4-channel, bidirectional translating I2C switch. The controller SCL/SDA signal pair is directed to four channels of peripheral devices, SC0/SD0-SC3/SD3. Any individual downstream channel can be selected as well as any combination of the four channels. The TCA9545A also supports interrupt signals in order for the controller to detect an interrupt on the INT output terminal that can result from any of the peripheral devices connected to the INT3-INT0 input terminals. The device offers an active-low RESET input which resets the state machine and allows the TCA9545A to recover should one of the downstream I2C buses get stuck in a low state. The state machine of the device can also be reset by cycling the power supply, VCC, also known as a power-on reset (POR). Both the RESET function and a POR will cause all channels to be deselected.

The connections of the I2C data path are controlled by the same I2C controller device that is switched to communicate with multiple I2C peripherals. The I2C peripheral address can be configured by soldering SMD jumpers labeled as ADDR SEL to set the least significant bit (LSB). After the successful acknowledgment of the peripheral address, a single 8-bit control register is written to or read from to determine the selected channels and state of the interrupts. The TCA9545A may also be used for voltage translation, allowing the use of different bus voltages on each SCn/SDn pair such that 1.8-V, 2.5-V, or 3.3-V parts can communicate with 5-V parts. This is achieved by using external pull-up resistors to pull the bus up to the desired voltage for the controller and each peripheral channel.

One or several SCn/SDn downstream pairs, or channels, are selected by the contents of the control register. After the TCA9545A has been addressed, the control register is written. The four LSBs of the control byte are used to determine which channel or channels are to be selected. When a channel is selected, it becomes active after a stop condition has been placed on the I2C bus. This ensures that all SCn/SDn lines are in a high state when the channel is made active so that no false conditions are generated at the time of connection. A stop condition must occur always right after the acknowledge cycle.

The TCA9545A provides four interrupt inputs (one for each channel) and one open-drain interrupt output. When an interrupt is generated by any device, it is detected by the TCA9545A and the interrupt output is driven low. The channel does not need to be active for the detection of the interrupt. A bit also is set in the control register. Bits 4–7 of the control register correspond to channels 0–3 of the TCA9545A, respectively. Therefore, if an interrupt is generated by any device connected to channel 1, the state of the interrupt inputs is loaded into the control register when a read is accomplished. Likewise, an interrupt on any device connected to channel 0 would cause bit 4 of the control register to be set on the read. The controller then can address the TCA9545A and read the contents of the control register to determine which channel contains the device generating the interrupt. The controller then can reconfigure the TCA9545A to select this channel and locate the device generating the interrupt and clear it. It should be noted that more than one device can provide an interrupt on a channel, so it is up to the controller to ensure that all devices on a channel are interrogated for an interrupt. The interrupt inputs can be used as general-purpose inputs if the interrupt function is not required. If unused, interrupt input(s) must be connected to VCC.

This Click board™ can be supplied and interfaced with both 3.3V and 5V without the need for any external components. The onboard SMD jumper labeled as VCC SEL allows voltage selection for interfacing with both 3.3V and 5V microcontrollers.

  • Interface: I2C
  • Compatibility: mikroBUS™
  • Dimensions: 57.15 x 25.4mm
  • Input Voltage: 3.3V, 5V

MIKROE I2C MUX 2 Click Product Help and Resources


Looking for answers to technical questions?

We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.

Customer Reviews

No reviews yet.