Skip to content
A project ofgwark.dev

Microchip · Integrated circuit

MCP23017 I2C I/O Expander

Sixteen real GPIOs over two wires, with direction, pull-ups and interrupts per pin. The PCF8574 grown up and given a register map.

Cheat sheet (SVG)
Logic level
1.8-5.5 V
Package
SPDIP-28 / SOIC-28 / SSOP-28

1.Pinout diagram

Highlight a signalhover to preview, click to keep

Pins 1-14

MCP23017

Pins 15-28

Pin detail

Hover a pin for its mappings and gotchas. Click to keep it here.

Logic level
1.8-5.5 V
Package
SPDIP-28 / SOIC-28 / SSOP-28

Fig. 1. MCP23017 I2C I/O Expander, SPDIP-28. Hover or tap a signal to light up every pin that carries it.

2.Watch out

3.Minimum circuit

What has to go around the chip before it will run.

VCCGNDMCP230170.1 uF ceramic between VDD (9) and GND0.1 uFceramicReset link between RESET (18) and VCCResetlink4.7 kOhm between SDA (13) and VCC4.7 kOhm4.7 kOhm between SCL (12) and VCC4.7 kOhmAddress link between A0 (15) and GNDAddresslinkAddress link between A1 (16) and GNDAddresslinkAddress link between A2 (17) and GNDAddresslinkVDD (9) to VCCVSS (10) to GNDVDD 9VDD 9VSS 10SCL 12SDA 13A0 15A1 16A2 17RESET 18
Fig. 2. Minimum circuit, drawn from Table 1. Crossing wires are not connected.
Table 1. External parts, and why each one is there.
PartBetween
0.1 uF ceramicVDD (9) to GND
Reset linkRESET (18) to VCC
4.7 kOhmSDA (13) to VCC
4.7 kOhmSCL (12) to VCC
Address linkA0 (15) to GND
Address linkA1 (16) to GND
Address linkA2 (17) to GND

INTA and INTB are open drain by default and need their own pull-up if you use them. Nothing else is required: the GPIO pull-ups are inside the chip and switched on in software.

4.Full pin reference

Every pin, alias and mapping. This is the table that prints.

Table 2. Pin assignments.

Complete pin reference for MCP23017 I2C I/O Expander
PinNameFunctions

Found a wrong pin? The whole board is one file, data/boards/mcp23017.json.

Edit this file on GitHubReport it instead