MCP23017 GPIO Expander Symbol

MCP23017 GPIO Expander symbolMCP2301716-GPIO
The MCP23017 GPIO Expander symbol (IEC 60617 / ANSI Y32.2).

Definition: The MCP23017 GPIO Expander symbol represents a 16-bit I2C-controlled bidirectional digital I/O port expander integrated circuit that adds 16 independently configurable general-purpose input/output lines to a microcontroller using only two bus wires (SDA and SCL), as specified in the Microchip Technology MCP23017 datasheet (DS20001952).

Also known as: MCP23017, I2C GPIO expander, port expander, I/O expander, 16-channel GPIO, I2C IO expander.

What the MCP23017 GPIO Expander symbol means

The MCP23017 GPIO Expander symbol denotes an I2C-bus peripheral IC that extends a microcontroller's available digital I/O capacity without consuming additional MCU pins beyond the two required for the I2C interface (SDA and SCL). The device provides two 8-bit ports — Port A (GPA0–GPA7) and Port B (GPB0–GPB7) — each independently configurable as input or output on a pin-by-pin basis via the IODIR register. Pull-up resistors, polarity inversion, and interrupt-on-change are configurable per pin through the I2C register map.

In block-diagram schematics the MCP23017 GPIO Expander symbol is drawn as a rectangular IC block with I2C bus pins (SDA, SCL) and address-select pins (A0, A1, A2) on the left side, VCC and GND for power, and the 16 GPIO lines (GPA0 and GPB0 representing the two port groups) on the right side. Up to eight MCP23017 devices can share one I2C bus using the three address pins, providing up to 128 additional GPIO lines from a single I2C pair.

How to identify the MCP23017 GPIO Expander symbol

The MCP23017 GPIO Expander symbol is drawn as a rectangular IC block labelled 'MCP23017' or 'GPIO EXPANDER'. On the left side are the I2C interface pins: SDA (serial data), SCL (serial clock), VCC (supply), and A0/A1/A2 (hardware address bits 0–2). On the right side are the GPIO port pins: GPA0 (representing Port A, which encompasses GPA0–GPA7) and GPB0 (representing Port B, which encompasses GPB0–GPB7). The GND pin appears at the bottom. In chip-level schematics the full 28-pin DIP or 28-pin SSOP pinout is shown.

Function in a circuit

The MCP23017 functions as an I2C slave device. The host microcontroller writes to 11 control registers (accessed via 7-bit I2C address 0x20–0x27 depending on A0/A1/A2 pin states) to configure direction (IODIRA/IODIRB), enable internal 100 kΩ pull-ups (GPPUA/GPPUB), read input states (GPIOA/GPIOB), write output states (OLATA/OLATB), and configure interrupt-on-change (GPINTENA/GPINTENB). The device operates at I2C speeds up to 1.7 MHz (Fast-mode Plus). Each GPIO output can sink or source up to 25 mA, with a maximum total current of 125 mA per device.

Standards: IEC vs ANSI

IEC 60617IEC 60617 does not define a specific symbol for the MCP23017. In IEC-compliant schematics it is represented as a general rectangular IC block per IEC 60617 standard block conventions, with labelled I2C, GPIO, VCC, and GND pins.
ANSI/IEEE 315IEEE 315 (ANSI Y32.2) does not define a specific symbol for the MCP23017. It is drawn as a rectangular IC block with designated input/output pin labels per IEEE 315 IC symbol conventions. The I2C bus lines are typically shown as a shared bus with SDA and SCL annotations.
Key differenceBoth IEC and IEEE/ANSI use the same rectangular block representation for this device. The distinction is in labelling convention: IEC style labels ports as GPA/GPB with bus notation; ANSI style may show each of the 16 GPIO pins individually on the chip symbol with pin numbers.

Terminals / pins

PinName
sdaSDA
sclSCL
vccVCC
gpa0GPA0
gpb0GPB0
gndGND

Typical values

Supply voltage VCC: 1.8 V to 5.5 V. I2C address range: 0x20 to 0x27 (set by A0, A1, A2 pins). I2C speed: Standard (100 kHz), Fast (400 kHz), Fast-mode Plus (1.7 MHz). GPIO output current: 25 mA per pin (sink or source), 125 mA total per device. Internal pull-up: 100 kΩ (enabled per pin via GPPU register). Package: 28-pin DIP, SSOP, or QFN.

Where the MCP23017 GPIO Expander symbol is used

Example

In an Arduino Uno schematic for controlling a 4×4 relay board, the MCP23017 GPIO Expander symbol is shown with SDA connected to Arduino pin A4 and SCL to A4 pin A5 (the hardware I2C port). Address pins A0, A1, A2 are all tied to GND, setting the I2C address to 0x20. GPA0–GPA7 (Port A) control relay coils 1–8 through a ULN2803 driver, and GPB0–GPB7 (Port B) control relays 9–16, giving 16 relay outputs from just two Arduino pins.

Key facts

Frequently asked questions

What does the MCP23017 GPIO expander symbol look like?

The MCP23017 GPIO Expander symbol is a rectangular IC block labelled 'MCP23017' or 'GPIO EXPANDER'. The left side shows I2C bus pins (SDA, SCL), supply (VCC), and GND. The right side shows the GPIO port output groups (GPA0 for Port A and GPB0 for Port B). In full chip schematics, all 28 pins are shown individually.

What does a GPIO expander do?

A GPIO expander such as the MCP23017 adds additional digital input/output lines to a microcontroller using only the I2C bus (SDA and SCL). The MCP23017 adds 16 configurable GPIO pins, allowing systems with limited MCU pins (such as an Arduino Uno with 14 digital I/O pins) to control many more devices or read many more sensors.

What are the pins on the MCP23017 GPIO expander symbol?

The key pins on the MCP23017 are: SDA (I2C serial data), SCL (I2C serial clock), VCC (1.8–5.5 V supply), GND, A0/A1/A2 (I2C address selection), GPA0–GPA7 (Port A GPIO), GPB0–GPB7 (Port B GPIO), INTA and INTB (interrupt outputs), and RESET (active-low hardware reset).

What I2C address does the MCP23017 use?

The MCP23017 uses a 7-bit I2C base address of 0x20. The three address pins A0, A1, and A2 set the lower three bits, giving addresses 0x20 through 0x27. This allows up to eight MCP23017 devices on a single I2C bus, providing up to 128 additional GPIO lines.

What is the difference between MCP23017 and MCP23008?

The MCP23017 provides 16 GPIO pins (two 8-bit ports: GPA and GPB) in a 28-pin package and has two interrupt outputs (INTA, INTB). The MCP23008 provides 8 GPIO pins (one 8-bit port: GP0–GP7) in an 18-pin package with a single interrupt output. Both use the same I2C register structure and share the same address range (0x20–0x27).

Can the MCP23017 drive LEDs directly?

Yes. Each MCP23017 GPIO output can sink or source up to 25 mA, sufficient to drive a standard LED with a series current-limiting resistor (e.g., 220 Ω for a 5 V supply with a 2 V LED drop gives 13.6 mA). The total device current limit is 125 mA, so no more than five outputs should be actively driving LEDs simultaneously at full current.

What standard defines the MCP23017 symbol?

The MCP23017 is a proprietary IC from Microchip Technology; its schematic symbol is not defined by IEC 60617 or IEEE 315 specifically. It is drawn as a rectangular IC block per general IEC 60617 or IEEE 315 IC symbol conventions, labelled with the part number and annotated with pin functions. The device is fully specified in Microchip datasheet DS20001952.

Place the MCP23017 GPIO Expander symbol on a wiring diagram or schematic in the free online circuit diagram maker — no download required.