This is a 4 channel I2C Bus Multiplexer w/Grove and Pins. Expand your I2C bus into 4 with different voltages and different address spaces!Designed by SwitchDoc Labs, Ships from United States of America
Video at bottom. 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 - ...Read More…
Video at bottom.
Lots more on www.switchdoc.com
Full Details Below.
Prototyping is an essential part of product design, whether the project is for production or just to prove that it can be done.
Why Would You Need an I2C Bus Mux?
What is a Grove Connector?
The way we have been wiring I2C connections before just didn't work for large projects. Basically, we used to put the I2C bus to screw terminals or snap down connectors and then ran wires to each device. This would not work for complex projects. In doing some research, we ran across Grove connectors [ http://www.seeedstudio.com/wiki/Grove_System]. We quickly found the connectors and their respective cables very useful. With the large selection of Grove I2C devices available, we decided to include a Grove connector on all our future I2C boards.
The white connectors on the 4 Channel I2C Mux board picture at the top are Grove connectors for easy, non soldered connections to the I2C bus. The picture below shows the SunRover robot built using Grove connectors for the 8 different I2C busses in the robot.
Don't have Grove I2C connectors on your favorite breakout board? You can use these inexpensive adaptors. Or just use the Pin Headers provided on the board.
4 Channels I2C Mux Breakout Board with Grove Connectors and LEDs
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 devices and SunRover has over 30 and will require one I2C bus just for controlling the motors. In addition, we run 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!
Full Specification for the Grove4I2CMux here: http://www.switchdoc.com/wp-content/uploads/2015/04/I2CMuxBOB-042015-V1.0.pdf
Here is the block diagram for the 4 Channel I2C Mux Board
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!
We have thought out the connections and have extra pads for the 4 bus power connections and have Grove connectors for the computer bus and all four of the multiplexed I2C busses.
We added status LEDs on SDA/SCL on each of the multiplexed I2C busses for easy debugging and cool nighttime behavior as seen below.
The TCA9545A is a quad bidirectional translating switch controlled via the I2C bus. The SCL/SDA controlling fans out to four downstream 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.
TCA9545 Breakout Board Pinout TCA9545 Breakout Board Pinout 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!
We build projects. Lots of projects. With every project, we learn better what works and doesn't work. For example, Project Curacao taught us to build PCB boards for everything. Prototyping boards are really a pain, especially in an environment that has a lot of temperature changes and for a lot of other reasons. SunRover is teaching us about managing I2C devices in a complex environment with three (3!) different computers running all at the same time.
By the way, SunRover uses TWO I2C Mux Boards for even more I2C devices!
We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.
We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!