I2C 4 Channel Mux Extender / Expander Board Grove/Pin Headers for Arduino and Raspberry Pi

$17.95

QTY:

New Version released:  0057-051618-01 - Removes Mandatory Jumpers for power to the four channels.  Has soldered jumpers to connect channel power to VCC on the Computer Interface and J1 Grove Connector.   You can cut the solder jumpers if you want different power supplies on the individual channels.  See Specification.

The Grove I2C 4 Channel Mux Breakout Board is a TCA9545A based quad bidirectional I2C Expander and Multiplexor controlled via the I2C bus with GROVE connectors. The SCL/SDA controlling fans out to four downstream channels. It works for both the Arduino and Raspberry Pi.

At SwitchDoc Labs, we love data. And we love I2C devices. We like to gather the data using lots of I2C devices on our computers and projects. We are always running into conflicts with addressing on the I2C device. Since there are no standards, sometimes multiple devices will have the same address, such as 0x70 and you are just out of luck in running both of them on the same I2C bus without a lot of jimmy rigging. You can have any combination of 3.3V and 5V I2C busses on this board. What is the solution for this? It’s an I2C controlled 4 I2C bus multiplexer! We have both Grove Connectors and traditional pin headers. Grove connectors make it easy to use with no soldering! SwitchDoc Labs is building all future products with Grove connectors and there are many manufacturers of Grove sensors. And we have the software drivers written for it for the Arduino and the Raspberry Pi on github.com/switchdoclabs. With the software and board, you are ready to go!

Really nice product!

"I needed an I2C expander for my project, with multiple identical sensors that have set i2c addresses. I have seen other muxes, but this one fit the bill perfectly, just to be able to power the individual channels separately was the deciding factor. Connecting 3.3v and 5v sensors to an Raspberry Pi without much fuzz has made things easier. I bought two of these and I am considering buying some more, the version with the grove connectors looks tempting...." -Andreas

Features

  • Converts one I2C bus (on Pi or Arduino) to 4 seperate I2C buses
  • All four I2C busses can be run at 3.3V or 5.0V, independently
  • LEDs indicate the status of each I2C Bus – Great for debugging
  • Pin Headers available for non Grove connections
  • Has standard Grove connectors for easy connections
  • Allows using same I2C addresses for many sensors galore!
  • Works with Arduino and Raspberry Pi
  • Software Drivers for Arduino and Raspberry Pi Included!
  • Interrupt line on each channel
  • 100KHz / 400KHz operation
  • On-board termination resistors for each channel!

This I2C Mux has GROVE connectors (as well as pin headers) and Status LEDs for each of the four channels.

The I2C 4 Channel Mux Breakout Board is a TCA9545A based quad bidirectional translating switch controlled via the I2C bus. The SCL/SDA controlling fans out to four downstream channels. It works for both the Arduino and Raspberry Pi.

At SwitchDoc Labs, we love data. And we love I2C devices. We like to gather the data using lots of I2C devices on our computers and projects. Project Curacao has a total of 12, WeatherPi has 11 devices and SunRover will have over 20 and will require one I2C bus just for controlling the motors. We are always running into conflicts with addressing on the I2C device. Since there are no standards, sometimes multiple devices will have the same address, such as 0x70 and you are just out of luck in running both of them on the same I2C bus without a lot of jimmy rigging. What is the solution for this? It's an I2C controlled 4 I2C bus multiplexer! And we have the software drivers written for it for the Arduino and the Raspberry Pi on github.com/switchdoclabs. With the software and board, you are ready to go!

What are Grove Connectors?

Check out this Grove Connector tutorial.

 

An Instructable for Building a Complete Raspberry Pi Weather Station using the I2C Mux

Downloads

  • Obsolete Specification for versions before 0057-051618-01 (Version 1 and before).for the Grove I2C 4 Channel Mux Breakout Board is available here.

 

 

 

Grove I2C Mux Block Diagram

 

 

 

 

Theory of Operation

SmallI2C Mux Short

The TCA9545A is a quad bidirectional translating switch controlled via the I2C bus. The SCL/SDA controlling fans out to fourdownstream channels. Any individual channel or combination of channels can be selected via I2C. Four interrupt inputs (INT3–INT0), one for each of the downstream pairs, are provided. One interrupt (INT) output acts as an AND of the four interrupt inputs. When you receive an interrupt, you read the interrupt register on the device to find out what channel interrupted you. An active-low reset (RESET) input allows the TCA9545A to recover from a situation in which one of the downstream I2C buses is stuck in a low state. Pulling RESETlow resets the I2C state machine and causes all the channels to be deselected, as does the internal power-on reset function. The TCA9545A allows the use of different bus voltages on each pair, so that 1.8-V, 2.5-V, or 3.3-V parts can communicate with 5-V parts, without any additional protection. External pull-up resistors pull the bus up to the desired voltage level for each channel. All I/O terminals are 5.5 V tolerant!

Wiring Examples

All of the channels default to the VCC voltage supplied by J1 - Computer Grove Connector or VCC on JP1.

Test Results

Using the Arduino libraries and the test software show the following result. The test setup is to connect an additional I2C device to Bus 0 - in this case a SwitchDoc Labs INA3221 Breakout Board at address 0x40 on Bus0.

-----------------------------
------------------------------
SDA_Arduino_TCA9545_Test
Reading all four I2C Buses
------------------------------
------------------------------

------------------------------
------------------------------
Bus 0 Control Register:1
Scanning...
I2C device found at address 0x40  !
I2C device found at address 0x73  !
done

------------------------------
Bus 1 Control Register:2
Scanning...
I2C device found at address 0x73  !
done

------------------------------
Bus 2 Control Register:4
Scanning...
I2C device found at address 0x73  !
done

------------------------------
Bus 3 Control Register:8
Scanning...
I2C device found at address 0x73  !
done

Repeat the above test connecting the I2C Device to Bus1, Bus2 and Bus3 The I2C device (the INA3221 in this case) will move from bus to bus.