The MCP23017 is a 16-bit I2C I/O port expander by Microchip. It provides two 8-bit GPIO banks (PORTA and PORTB) with configurable pull-ups, interrupt-on-change, and up to 400kHz I2C. Up to 8 devices per bus (128 extra GPIO pins).
| Pin | Name | Function | Type |
|---|---|---|---|
| 1 | GPB0 | Port B bit 0 | I/O |
| 2 | GPB1 | Port B bit 1 | I/O |
| 3 | GPB2 | Port B bit 2 | I/O |
| 4 | GPB3 | Port B bit 3 | I/O |
| 5 | GPB4 | Port B bit 4 | I/O |
| 6 | GPB5 | Port B bit 5 | I/O |
| 7 | GPB6 | Port B bit 6 | I/O |
| 8 | GPB7 | Port B bit 7 | I/O |
| 9 | VDD | Supply voltage | PWR |
| 10 | VSS | Ground | GND |
| 11 | CS | Chip select (SPI mode) / NC | I/O |
| 12 | SCL | I2C clock | BUS |
| 13 | SDA | I2C data | BUS |
| 14 | A0 | I2C address bit 0 | I/O |
| 15 | A1 | I2C address bit 1 | I/O |
| 16 | A2 | I2C address bit 2 | I/O |
| 17 | RESET | Reset, active low | I/O |
| 18 | INTB | Interrupt for port B | I/O |
| 19 | INTA | Interrupt for port A | I/O |
| 20 | GPA0 | Port A bit 0 | I/O |
| 21 | GPA1 | Port A bit 1 | I/O |
| 22 | GPA2 | Port A bit 2 | I/O |
| 23 | GPA3 | Port A bit 3 | I/O |
| 24 | GPA4 | Port A bit 4 | I/O |
| 25 | GPA5 | Port A bit 5 | I/O |
| 26 | GPA6 | Port A bit 6 | I/O |
| 27 | GPA7 | Port A bit 7 | I/O |
| 28 | VDD | Supply voltage | PWR |