EmbeddedRelated.com
MCP23017-E/SS

MCHPMCP23017-E/SS

Microchip Technology
Interface - I/O Expanders 16bit Input/Output Exp I2C interface
NRND16,973 in stock

Overview

The MCP23017-E/SS is a 16-bit general-purpose I/O expander that communicates with host controllers via a high-speed I2C interface supporting up to 1.7 MHz. It provides two 8-bit ports (GPIOA and GPIOB) with configurable interrupt outputs and polarity inversion, allowing microcontrollers with limited GPIO to manage additional digital signals easily. This component is highly versatile due to its wide 1.8V to 5.5V supply voltage range and low standby current of 1 uA.

Why Choose This Part

The MCP23017 offers high-speed I2C performance up to 1.7 MHz and includes two independent interrupt pins that can be mirrored, allowing for fast response to input changes. Its low 1 uA standby current makes it ideal for battery-powered applications, and the inclusion of hardware address pins allows up to eight devices to share a single I2C bus.

Applications

Keyboard and Keypad Scanning
Efficiently manage large button matrices using the internal pull-up resistors and interrupt-on-change capabilities to reduce CPU polling.
System Status Monitoring
Monitor multiple digital signals such as door sensors, limit switches, or power-good indicators across an I2C bus.
LED Control
Drive up to 16 status LEDs or indicators directly with its 25mA per-pin source/sink capability.
Level Shifting Interface
Bridge signals between a low-voltage MCU and 5V logic peripherals thanks to its wide VDD range and 5V tolerance.

Key Specifications

Features POR
Interface I2C
Output Type Push-Pull
Mounting Type Surface Mount
Number of I/O 16
Package / Case 28-SSOP (0.209", 5.30mm Width)
Clock Frequency 1.7 MHz
Interrupt Output Yes
Voltage - Supply 1.8V ~ 5.5V
Operating Temperature -40degC ~ 125degC
Supplier Device Package 28-SSOP
Current - Output Source/Sink 25mA

Getting Started

To begin development, connect the SDA and SCL pins to your MCU's I2C bus with appropriate pull-up resistors and tie the RESET pin high. Use the three hardware address pins (A0, A1, A2) to set the unique I2C slave address. Many libraries are available for Arduino, Raspberry Pi, and MicroPython to simplify register configuration for port direction and interrupt behavior.

MCP2301 Family

Comparing specs that differ across variants. The current part is highlighted.

Part Number Package Stock
MCP23017-E/SS (this part) SSOP-28 16,973
MCP23017-E/ML VQFN-28 54,416

Also Consider

MCP23S17-E/SS MCHPMicrochip Technology - Identical 16-bit I/O capabilities but utilizes a faster SPI interface instead of I2C.
TCA9535 TITexas Instruments - A pin-compatible alternative with low-power features designed for I2C and SMBus applications.