The I2C Switch from AB Electronics is a 4 channel bidirectional I2C switch controlled via the I2C-bus. It is designed for use on all Raspberry Pi models with the 40 pin GPIO connector.
The I2C Switch is based around a PCA9546A controller from NXP. The PCA9546A provides quad bi-directional communication between the I2C port on the Raspberry Pi and any attached I2C devices. Each channel can be individually enabled or disabled allowing you to connect I2C devices that share the same address to your Raspberry Pi.
Powered through the host Raspberry Pi using the GPIO port and extended pins on the GPIO connector allowing you to stack the I2C Switch along with other expansion boards.
Each channel can operate at 2.7V, 3.3V or 5V allowing you to mix different voltage I2C devices on your Raspberry Pi.
Pull-up resistors need to be fitted to the SDA and SCL pins on each channel. We recommend using a value of between 2.2K and 10K for the pull-up resistors.
The pinout for each channel matches the first 6 pins on the Raspberry Pi GPIO connector with 3.3V, 5V, Ground, SDA and SCL.
The I2C switch supports clock frequencies up to 400KHz.
The reset pin on the PCA9546A is connected to GPIO 27 (pin 13) on the Raspberry Pi GPIO header allowing you to recover from a situation in which one of the downstream I2C buses is stuck in a low state.
- 4 I2C channels
- Channel selection via I2C-bus, in any combination
- 3 address pins allowing up to 8 devices on the I2C-bus
- Allows voltage level translation between 2.7 V, 3.3 V and 5 V buses
- 0 Hz to 400 kHz clock frequency
- The I2C Switch includes three address selection solder jumpers which can be bridged with solder to give you up to 8 different I2C addresses.
The I2C Switch is supplied with the 40 pin GPIO connector unsoldered. Before using the I2C Switch you will need to solder the 40 pin GPIO connector.
Input Ratings & Specifications:
- Host I2C SDA/SCL voltage - 3.3 V
- Channel I2C SDA/SCL voltage - 2.7 V - 5V
- I2C port current - 25 mA
- Max Clock Frequency - 400KHz
- Code Libraries (Python, C and C++ and Node JS)