Symbol & Footprint

Schematic Symbol

Open full view ↗

PCB Footprint

Open full view ↗
Contents

README

markdown

MCP23017

Microchip Technology · I2C 16-bit I/O expander · SOIC-28

Adds sixteen general-purpose I/O to a microcontroller over I2C, in a SOIC-28, the 16-bit big brother of the PCF8574. The pins are split into two 8-bit ports (GPA and GPB), each with per-pin direction, optional internal pull-ups, input polarity inversion, and interrupt-on-change that drives the INTA and INTB pins so the host need not poll. Three address pins (A0-A2) put up to eight of them on one bus for 128 I/O total. It speaks I2C up to 1.7 MHz (a sibling, the MCP23S17, uses SPI). Runs 1.8-5.5 V.

Pinout

Pin Name Type Function
1 GPB0 bidirectional PORTB bit 0 bidirectional I/O. Configurable per-pin as input or output; supports interrupt-on-change and internal ~75 µA weak pull-up to VDD. IOL up to 8.0 mA @ VDD=4.5V.
2 GPB1 bidirectional PORTB bit 1 bidirectional I/O. Same characteristics as GPB0 - configurable direction, interrupt-on-change, optional weak pull-up.
3 GPB2 bidirectional PORTB bit 2 bidirectional I/O with optional interrupt-on-change and weak pull-up.
4 GPB3 bidirectional PORTB bit 3 bidirectional I/O with optional interrupt-on-change and weak pull-up.
5 GPB4 bidirectional PORTB bit 4 bidirectional I/O with optional interrupt-on-change and weak pull-up.
6 GPB5 bidirectional PORTB bit 5 bidirectional I/O with optional interrupt-on-change and weak pull-up.
7 GPB6 bidirectional PORTB bit 6 bidirectional I/O with optional interrupt-on-change and weak pull-up.
8 GPB7 bidirectional PORTB bit 7 bidirectional I/O with optional interrupt-on-change and weak pull-up.
9 VDD power_in Positive supply. Operating range 1.8V-5.5V (industrial), 2.7V-5.5V and 4.5V-5.5V for wider temperature grades. Bypass with a 0.1 µF ceramic close to the pin.
10 VSS power_in Ground reference for supply and all I/O.
11 NC unconnected No connect on MCP23017 (this pin is Chip Select /CS on the SPI-variant MCP23S17). Leave floating or tie to ground.
12 SCL input I2C serial clock input (Schmitt-trigger). Standard 100 kHz, Fast 400 kHz, and Fast-mode Plus 1.7 MHz supported. Requires an external pull-up resistor to VDD.
13 SDA bidirectional I2C serial data (open-drain, Schmitt-trigger input). Requires an external pull-up resistor to VDD. VOL ≤ 0.6V @ 3 mA sink (VDD=1.8V), ≤ 0.8V @ 3 mA sink (VDD=4.5V).
14 NC unconnected No connect on MCP23017 (this pin is SPI Serial Out on MCP23S17). Leave floating or tie to ground.
15 A0 input Hardware slave address bit 0 (TTL buffer). Must be externally biased to VDD or VSS - do not leave floating. Sets bit A0 of the 7-bit I2C address 0100 A2 A1 A0.
16 A1 input Hardware slave address bit 1 (TTL buffer). Must be externally biased to VDD or VSS.
17 A2 input Hardware slave address bit 2 (TTL buffer). Must be externally biased to VDD or VSS. Combined with A1/A0 allows up to eight MCP23017 devices on one I2C bus.
18 RESET input Active-low hardware reset (Schmitt-trigger). Must be externally biased (tie to VDD directly or via a pull-up if unused). Minimum low pulse 1 µs; device is active 0 ns after RESET returns high; outputs go Hi-Z within 1 µs of RESET going low.
19 INTB output Interrupt output for PORTB. Configurable via IOCON as active-high, active-low, or open-drain. Can be mirrored with INTA when IOCON.MIRROR=1. VOL ≤ 0.6V @ 1.6 mA sink (VDD=4.5V).
20 INTA output Interrupt output for PORTA. Configurable via IOCON as active-high, active-low, or open-drain. Can be mirrored with INTB when IOCON.MIRROR=1.
21 GPA0 bidirectional PORTA bit 0 bidirectional I/O. Configurable per-pin as input or output; supports interrupt-on-change and internal ~75 µA weak pull-up to VDD. IOL up to 8.0 mA @ VDD=4.5V.
22 GPA1 bidirectional PORTA bit 1 bidirectional I/O with optional interrupt-on-change and weak pull-up.
23 GPA2 bidirectional PORTA bit 2 bidirectional I/O with optional interrupt-on-change and weak pull-up.
24 GPA3 bidirectional PORTA bit 3 bidirectional I/O with optional interrupt-on-change and weak pull-up.
25 GPA4 bidirectional PORTA bit 4 bidirectional I/O with optional interrupt-on-change and weak pull-up.
26 GPA5 bidirectional PORTA bit 5 bidirectional I/O with optional interrupt-on-change and weak pull-up.
27 GPA6 bidirectional PORTA bit 6 bidirectional I/O with optional interrupt-on-change and weak pull-up.
28 GPA7 bidirectional PORTA bit 7 bidirectional I/O with optional interrupt-on-change and weak pull-up.

Key specifications

Parameter Value
Type I2C 16-bit I/O expander
I/O lines 16 (ports GPA0-7, GPB0-7)
Bus I2C up to 1.7 MHz
Address pins A0-A2 (8 per bus)
Per-pin features direction, pull-up, polarity, interrupt
Interrupts INTA + INTB (configurable)
Supply voltage 1.8-5.5 V
Package SOIC-28

Ordering variants

Same part, different packaging or reel option.

  • MCP23017-E/SO (SOIC-28)
  • MCP23017-E/SP (SPDIP-28)

CAD (KiCad official)

  • Symbol: Interface_Expansion:MCP23017x-x-SO
  • Footprint: Package_SO:SOIC-28W_7.5x17.9mm_P1.27mm
  • 3D model: SOIC-28W (KiCad packages3D)

Provenance

Data extracted from the manufacturer datasheet, not a distributor listing:

  • Datasheet: Microchip Technology datasheet (42 pp, sha256 14159c6f5655e943, retrieved 2026-08-17, tier: manufacturer)
  • Extractor: ds2sf (Claude). Every pin and dimension is cited to a datasheet page; it refuses to fabricate.
  • CAD: KiCad official libraries (CC-BY-SA 4.0).

Datasheet PDF