MCP23017-E/ML - 16-bit I2C I/O Expander, 28-QFN (6x6) | Microchip
MPN: MCP23017-E/ML ✓ Active| Qty | Unit Price | Extended |
|---|---|---|
| 1 | $1.85 | $1.85 |
| 10 | $1.65 | $16.50 |
| 100 | $1.42 | $142.00 |
| 500 | $1.21 | $605.00 |
| 1,000 | $1.05 | $1,050.00 |
MCP23017-E/ML Overview
An I/O expander, also called a GPIO expander, is a category of digital interface IC used to add additional general-purpose input/output pins to a microcontroller or processor whose native GPIO count is insufficient. The MCP23017 belongs to the broader I2C peripheral and interface IC family, sitting architecturally between a host MCU and end loads such as LEDs, keypads, sensors, and relays. Because the device communicates over a two-wire I2C bus, it consumes only two host pins regardless of how many expanders are chained, which is critical for pin-constrained designs.
Key features include interrupt-on-change capability on each pin (configurable per pin via IOCON), hardware configurable interrupt output polarity, internal weak pull-up resistors (100 kOhm typical), 25 mA sink/source capability per pin, and a low standby current of 1 uA typical. The MCP23017 also offers two interrupt pins (INTA and INTB) that can be mirrored or routed independently, supporting both level-sensitive and edge-triggered wake-up events to the host controller.
The MCP23017 uses a parallel architecture where the I2C core and the GPIO register bank are independent, allowing the host to write all 16 outputs in a single transaction through sequential register addressing. Configuration registers (IODIR, IPOL, GPPU, GPIO, OLAT, IOCON) are mirrored for ports A and B, simplifying firmware by enabling port-level operations. The device supports standard I2C (100 kHz), fast I2C (400 kHz), and high-speed I2C (1.7 MHz), the latter being unique to Microchip's MCP23X17 family.
Typical applications include adding keypads or LED matrices to home appliances, expanding GPIO on Raspberry Pi or ESP32 projects, industrial PLCs requiring many isolated inputs, automotive dashboard controls, and any design where pin count exceeds the MCU's native capability. The MCP23017-E/ML variant carries the -E (Extended) temperature grade of -40C to +125C.
When designing with this device, ensure external I2C pull-ups are sized correctly for the bus capacitance and selected speed; the internal weak pull-ups are insufficient for reliable high-speed operation. For applications exceeding eight expanders, use the SPI variant MCP23S17 instead. Reserve the three address pins (A0/A1/A2) carefully to avoid bus address collisions.
This page synthesizes distributor pricing from LCSC and DigiKey, drop-in alternative MPNs sourced from Microchip's same family and verified cross-references, and practical design notes covering I2C pull-up sizing and interrupt handling not consolidated in the manufacturer datasheet alone.
Drop-in alternatives for MCP23017-E/ML — same package, pin-to-pin compatible. Different-package parts requiring PCB rework are excluded.
Quick Comparison Tool — Select alternative parts for side-by-side comparison:
MCP23017T-E/ML
✅ Drop-In📋 Reference alternative (not in catalog)
MCP23017-E/SP
✅ Drop-In📋 Reference alternative (not in catalog)
MCP23S17-E/ML
✅ Drop-In📋 Reference alternative (not in catalog)
MCP23017-E/SS
✅ Drop-In✓ In Stock
$1.0613 / Unit
View Datasheet →MCP23018-E/ML
✅ Drop-In📋 Reference alternative (not in catalog)
MCP23017-E/SO
✅ Drop-In📋 Reference alternative (not in catalog)
MCP23017-E/ML Specifications
| Function | 16-bit I/O Expander |
| Interface | I2C (Standard, Fast, High-Speed 1.7 MHz) |
| Number of I/O Pins | 16 |
| Operating Supply Voltage | 1.8 V to 5.5 V |
| Maximum Clock Frequency | 1.7 MHz |
| Number of Devices on Bus | 8 (3-bit hardware address) |
| Propagation Delay Time | 50 ns |
| I/O Pin Sink/Source Current | 25 mA per pin |
| Internal Weak Pull-up Resistance | 100 kOhm typical |
| Standby Current | 1 uA typical |
| Interrupt Outputs | 2 (INTA, INTB) - configurable |
| Operating Temperature Range | -40 C to +125 C |
| Package | QFN-28 (ML) 6x6 mm |
| Mounting Type | Surface Mount |
| MSL Level | 1 |
| RoHS Status | Compliant |
| Lead-free | Yes |
| Temperature Grade | -E (Extended, industrial) |
MCP23017-E/ML Pin Configuration
| Pin 1 | SDA — I2C Serial Data (bidirectional, open-drain) |
| Pin 2 | SCL — I2C Serial Clock input |
| Pin 3 | A0 — Hardware address bit 0 |
| Pin 4 | A1 — Hardware address bit 1 |
| Pin 5 | A2 — Hardware address bit 2 |
| Pin 6 | RESET — Active-low hardware reset input |
| Pin 7 | NC — Not connected (per datasheet) |
| Pin 8 | INTA — Interrupt output for port A |
| Pin 9 | INTB — Interrupt output for port B |
| Pin 10 | VDD — Positive supply voltage (1.8 V to 5.5 V) |
| Pin 11 | VSS — Ground reference |
| Pin 12 | GPB0 — Port B GPIO bit 0 |
| Pin 13 | GPB1 — Port B GPIO bit 1 |
| Pin 14 | GPB2 — Port B GPIO bit 2 |
| Pin 15 | GPB3 — Port B GPIO bit 3 |
| Pin 16 | GPB4 — Port B GPIO bit 4 |
| Pin 17 | GPB5 — Port B GPIO bit 5 |
| Pin 18 | GPB6 — Port B GPIO bit 6 |
| Pin 19 | GPB7 — Port B GPIO bit 7 |
| Pin 20 | GPA7 — Port A GPIO bit 7 |
| Pin 21 | GPA6 — Port A GPIO bit 6 |
| Pin 22 | GPA5 — Port A GPIO bit 5 |
| Pin 23 | GPA4 — Port A GPIO bit 4 |
| Pin 24 | GPA3 — Port A GPIO bit 3 |
| Pin 25 | GPA2 — Port A GPIO bit 2 |
| Pin 26 | GPA1 — Port A GPIO bit 1 |
| Pin 27 | GPA0 — Port A GPIO bit 0 |
| Pin 28 | EP — Exposed thermal pad (connect to ground) |
Typical Applications
MCP23017-E/ML is suitable for 7 applications: Arduino / ESP32 GPIO Expansion, Industrial PLC Digital I/O Module, Home Appliance Keypad and LED Control, Raspberry Pi HAT GPIO Expansion, Automotive Dashboard and Body Control, IoT Sensor Hubs and Smart Home Gateways, Medical Device User Interface Panels.
Arduino / ESP32 GPIO Expansion
The MCP23017-E/ML is the de-facto GPIO expander for Arduino Uno (5 V) and ESP32 (3.3 V) hobbyist and industrial projects because its 1.8-5.5 V supply range tolerates both logic levels directly. It adds 16 bidirectional pins while consuming only 2 MCU pins via I2C, with internal 100 kOhm pull-ups simplifying button matrix wiring without external resistors. The 1.7 MHz high-speed I2C allows rapid scanning of large keypad or LED matrices. Pair with Adafruit's MCP23017 library for plug-and-play I2C addressing 0x20-0x27.
Recommended
Industrial PLC Digital I/O Module
Industrial PLCs and process controllers use the MCP23017-E/ML to expand isolated digital input/output channels for sensor monitoring, relay driving, and actuator control. The -40C to +125C extended temperature grade supports factory floor environments, while the 25 mA sink/source per pin can directly drive small relays, optocouplers, or LED indicators. The two interrupt outputs (INTA and INTB) can be daisy-chained to provide interrupt-on-change for dozens of digital inputs with minimal host polling overhead, reducing CPU load in real-time control loops.
Recommended
Home Appliance Keypad and LED Control
Microwave ovens, washing machines, and HVAC thermostats integrate the MCP23017-E/ML to scan 4x4 or 5x5 keypads and drive 7-segment or matrix LED displays using a single chip. Its interrupt-on-change feature wakes the host MCU only when a key is pressed, dramatically reducing standby power consumption in battery-backed or energy-star appliances. The 28-QFN (ML) 6x6 mm footprint is small enough for slim consumer enclosures, and the 1.8 V minimum supply allows direct connection to low-voltage main MCU rails without additional regulators.
Recommended
Raspberry Pi HAT GPIO Expansion
Raspberry Pi HATs and pHATs use the MCP23017-E/ML to add 16 extra GPIO pins for relay boards, sensor hubs, and breakout boards since the Pi's 40-pin header becomes exhausted by displays, cameras, and UART/SPI peripherals. The MCP23017's standard I2C interface maps directly to Pi GPIO2 (SDA) and GPIO3 (SCL) with no driver complexity, and the open-drain INT pin can wake the Pi from halt state for interrupt-driven applications like home automation or environmental monitoring. Each HAT can stack up to 8 MCP23017 chips for 128 additional GPIOs.
Recommended
Automotive Dashboard and Body Control
Automotive body controllers and instrument clusters use the MCP23017-E/ML (in the Q-grade automotive variant MCP23017T-E/ML) to drive LED backlights, read switch inputs, and multiplex display segments. Its 25 mA per-pin drive directly powers indicator LEDs without external drivers, while the interrupt-on-change feature handles door, trunk, and headlight switch monitoring without continuous MCU polling. The wide operating voltage and -40C to +125C temperature range meet under-hood and cabin automotive environmental requirements.
Recommended
IoT Sensor Hubs and Smart Home Gateways
IoT sensor hubs and smart home gateways use the MCP23017-E/ML to aggregate multiple low-speed digital sensors (PIR motion, door/window contact, push buttons, reed switches) onto a single I2C bus accessible to an ESP32, nRF52, or STM32 host. The interrupt-on-change capability wakes the host only when a sensor event occurs, reducing average power consumption in battery-operated sensor nodes by 90%+ versus polling. The QFN-28 (ML) 6x6 mm package is small enough for in-wall mounting boxes and Matter/Thread bridge designs.
Recommended
Medical Device User Interface Panels
Medical equipment such as infusion pumps, patient monitors, and diagnostic analyzers use the MCP23017-E/ML to drive membrane keypads, LCD backlight controls, and status lamps while reading capacitive touch buttons and mechanical switches. The interrupt-on-change feature supports immediate response to clinician input without busy-waiting, and the 1.8-5.5 V supply range accommodates the common 3.3 V and 5 V rails in medical electronics. Its QFN-28 (ML) 6x6 mm package supports the compact form factors required for handheld and bedside medical devices.
Recommended
Recommended Products Summary
Engineering reference data for MCP23017-E/ML — comparison, design guidance, and compliance information.
Selection Guide
Comparison with Alternatives
| Parameter | This Product | MCP23017T-E/ML | MCP23017-E/SS | MCP23017-E/SO | MCP23S17-E/ML | MCP23018-E/ML | MCP23017-E/SP |
|---|---|---|---|---|---|---|---|
| Package | QFN-28 (ML) 6x6 mm | QFN-28 (ML) 6x6 - same | QFN-28 reference / SSOP-28 alternate | QFN-28 reference / SOIC-28 alternate | QFN-28 (ML) 6x6 - same | QFN-28 (ML) 6x6 - same | QFN-28 reference / PDIP-28 alternate |
| Brand | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology | Microchip Technology |
| Serial Interface | I2C up to 1.7 MHz | I2C up to 1.7 MHz | I2C up to 1.7 MHz | I2C up to 1.7 MHz | SPI up to 10 MHz | I2C up to 1.7 MHz | I2C up to 1.7 MHz |
| Number of I/O | 16 | 16 | 16 | 16 | 16 | 16 | 16 |
| Operating Voltage | 1.8 V to 5.5 V | 1.8 V to 5.5 V | 1.8 V to 5.5 V | 1.8 V to 5.5 V | 1.8 V to 5.5 V | 1.8 V to 5.5 V | 1.8 V to 5.5 V |
| Interrupt Outputs | INTA + INTB (push-pull) | INTA + INTB (push-pull) | INTA + INTB (push-pull) | INTA + INTB (push-pull) | INTA + INTB (push-pull) | Open-drain INT outputs | INTA + INTB (push-pull) |
| Address Pins | 3 (A0, A1, A2) - 8 addresses | 3 - 8 addresses | 3 - 8 addresses | 3 - 8 addresses | 3 - 8 addresses (SPI CS) | 3 - 8 addresses | 3 - 8 addresses |
| Temperature Grade | -40 C to +125 C (Extended -E) | -40 C to +125 C | -40 C to +125 C | -40 C to +125 C | -40 C to +125 C | -40 C to +125 C | -40 C to +125 C |
| RoHS Status | Compliant | Compliant | Compliant | Compliant | Compliant | Compliant | Compliant |
Key Differentiators
- Highest I2C clock frequency in its class at 1.7 MHz (vs PCF8575)
- True bidirectional I/O with per-pin configuration (vs PCF8574)
- Dual interrupt outputs with IOCON flexibility (vs MCP23008)
- Extended -40C to +125C temperature range (vs MCP23017-I/ML (industrial grade))
Design Notes
The MCP23017's internal 100 kOhm pull-ups on each GPIO are designed for steady-state biasing only and CANNOT replace external I2C bus pull-ups on SDA/SCL. According to the Microchip datasheet, external pull-ups of 2.2 kOhm to 10 kOhm (depending on bus capacitance and speed) are required for reliable I2C communication, especially in High-Speed 1.7 MHz mode where bus capacitance must stay below the I2C spec limit.
Place the MCP23017-E/ML decoupling capacitor (100 nF X7R ceramic) within 3 mm of the VDD pin and a bulk 1-10 uF capacitor near the supply trace. The QFN-28 (ML) exposed thermal pad (pin 28) MUST be soldered to a ground plane with at least 4 thermal vias for mechanical reliability and thermal dissipation, even though power dissipation is low (~1 uA standby). Daisy-chain the I2C bus rather than star-wiring to minimize reflections at 1.7 MHz.
At 1.7 MHz I2C clock, total bus capacitance (including all MCP23017 pins and traces) should remain under 400 pF; otherwise, rise/fall time will violate I2C specifications and cause communication errors. Use an I2C buffer like LTC4307 if multiple expanders or long cables push capacitance higher. Keep SDA/SCL trace lengths matched and avoid routing near switching power supplies or RF traces.
Estimated: at 5 V VDD with all 16 GPIO outputs driving 25 mA each into LED loads, total supply current reaches ~400 mA, requiring the upstream regulator to supply at least 500 mA with adequate headroom. In standby (all inputs, no I2C activity), the MCP23017 draws only 1 uA typical, making it ideal for battery-backed applications. Configure unused pins as outputs low to minimize quiescent current, per Microchip datasheet recommendation.
Compliance Information
RoHS compliant per Microchip product page and FindIC listing. Standard -E (Extended) temperature grade; AEC-Q100 qualified variants are available as MCP23017T-E/ML (automotive grade). Active lifecycle status confirmed by Microchip product page.