Introduction:
The I2C address bits are selectable using the on-board jumpers. The MCP23017 supports up to 8 different I2C addresses so with two MCP23017 devices on each IO Pi you can stack up to 4 IO Pi boards on a single Raspberry Pi giving a maximum of 128 I/O ports.
The IO Pi includes a 5V port that can be isolated from the Raspberry Pi via an isolation jumper so you can use a seperate high current power supply to power the IO Pi reducing the load on the Raspberry Pi. Use of an external supply is recommended if you plan on connecting more than one IO Pi to your Raspberry Pi.
I2C Address Selection
The MCP23017 contains three address select pins which can be tied to Vss, Vdd. This gives 8 possible I2C addresses for each chip. The IO Pi contains two MCP23017 chips so you can stack up to 4 IO Pi boards on a single Raspberry Pi. To simplify address selection on the IO Pi we have included a set of address selection pins which can be configured using the included jumpers. The illustrations below show the four recommended configurations for your IO Pi and the associated I2C addresses.
Note:
Disconnect the IO Pi from the Raspberry Pi before changing the address pins. The address pins are tied to Vdd (high) via a 10K resistor so the jumper is used to tie a pin to ground (low).
Default Configuration (IC1 = 0x20, IC2 = 0x21)
When you purchase the IO Pi the address selection jumpers will be pre-configured to the following addesses. IC1 Port = I2C Address: 0x20, IC2 Port = I2C Address: 0x21
Features
- 32 Digital Inputs/Outputs
- Control via the Raspberry Pi I2C port
- Stack up to 4 IO Pi boards on a single Raspberry Pi
- Jumper selectable I2C addresses
- External 5V Input with isolation jumper
- Based on the MCP23017 from Microchip Technologies Inc
- Configurable interrupt output pins – Configurable as active-high, active-low or open-drain
- INTA and INTB can be configured to operate independently or together
- Configurable interrupt source – Interrupt-on-change from configured register defaults or pin changes
- Polarity Inversion register to configure the polarity of the input port data
For more detail: IO Pi