Designing and building your own board
Building the Board
I shipped the files off to TinySine, they sent a quote, I paid via PayPal, and we were off. I asked TinySine to document the manufacturing of the I2C mux breakout board with pictures for this article, and they were happy to oblige (Figures 6-15). This was a disruption of their usual production flow, so I extend special thanks for these pictures.
The Results
The boards were shipped from TinySine on a Monday, and I received them via DHL on Thursday. I excitedly took them to the SwitchDoc Labs test bench and wired them up (Figure 16). I hooked up a Raspberry Pi to the main I2C board, connected the reset pin to 3.3V, and then wrote a Python driver to control the TCA9435. The driver and test software is available on GitHub [9]. I set it up with a SwitchDoc Labs INA3221 breakout board (located at I2C address 0x40) connected to I2C bus 0.
The TCA9435 breakout board is located at 0x73 (it has a selectable address on the board), and it shows up on each bus, which is correct. Listing 1 shows the results from the test software. Note that the INA3221 shows up on bus 0, but nowhere else, because the I2C buses are selected one by one. I repeated this experiment with bus 1 through bus 3 and got the correct result in each case. The board works perfectly.
Listing 1
Results from Test Software
01 Test SDL_Pi_TCA9545 Version 1.0 - SwitchDoc Labs 02 03 Sample uses 0x73 04 Program Started at:2015-04-03 03:04:39 05 06 -----------BUS 0------------------- 07 addr = 0x73 returndata = 0xa1 08 tca9545 control register B3-B0 = 0x1 09 ignore Interrupts if INT3' - INT0' not connected 10 tca9545 control register Interrupts = 0xa 11 0 1 2 3 4 5 6 7 8 9 a b c d e f 12 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 13 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 14 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 15 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 16 40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 17 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 18 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 19 70: -- -- -- 73 -- -- -- -- 20 21 ----------------------------------- 22 23 -----------BUS 1------------------- 24 addr = 0x73 returndata = 0xe2 25 tca9545 control register B3-B0 = 0x2 26 ignore Interrupts if INT3' - INT0' not connected 27 tca9545 control register Interrupts = 0xe 28 0 1 2 3 4 5 6 7 8 9 a b c d e f 29 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 30 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 31 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 32 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 33 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 34 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 35 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 36 70: -- -- -- 73 -- -- -- -- 37 38 ----------------------------------- 39 40 -----------BUS 2------------------- 41 addr = 0x73 returndata = 0xc4 42 tca9545 control register B3-B0 = 0x4 43 ignore Interrupts if INT3' - INT0' not connected 44 tca9545 control register Interrupts = 0xc 45 0 1 2 3 4 5 6 7 8 9 a b c d e f 46 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 47 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 48 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 49 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 51 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 52 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 53 70: -- -- -- 73 -- -- -- -- 54 55 ----------------------------------- 56 57 -----------BUS 3------------------- 58 addr = 0x73 returndata = 0xa8 59 tca9545 control register B3-B0 = 0x8 60 ignore Interrupts if INT3' - INT0' not connected 61 tca9545 control register Interrupts = 0xa 62 0 1 2 3 4 5 6 7 8 9 a b c d e f 63 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 64 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 65 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 66 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 67 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 68 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 69 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70 70: -- -- -- 73 -- -- -- -- 71 72 -----------------
Buy this article as PDF
Pages: 8
(incl. VAT)