MCP23017 Serial Interface Module 16-Bit I/O Expander Pins 10Mhz IIC I2C SPI Bidirectional
MCP23017 16-Bit I2C GPIO Expander Module
The MCP23017 16-Bit I2C GPIO Expander Module is a versatile solution for expanding the digital input/output capabilities of Arduino, ESP32, Raspberry Pi, and other microcontroller projects. It provides 16 bidirectional GPIO pins through a simple I2C interface, allowing you to add multiple digital inputs or outputs while using only two communication lines, SDA and SCL.
The 16 GPIO pins are arranged as two 8-bit ports, PORTA (GPA0–GPA7) and PORTB (GPB0–GPB7). Each pin can be independently configured as an input or output, making the module suitable for keypads, switches, LEDs, relays, displays, sensors, control panels, and other embedded applications.
Three hardware address pins allow up to 8 MCP23017 devices to share the same I2C bus, providing up to 128 additional GPIO pins. The module also supports configurable interrupt outputs, polarity inversion, and an external reset function for more advanced applications.
Key Features
16-bit bidirectional GPIO expansion
I2C serial interface
16 individually configurable digital I/O pins
Two 8-bit ports: GPA0–GPA7 and GPB0–GPB7
Operating voltage: 1.8V–5.5V for the MCP23017 IC
Supports I2C speeds of 100 kHz, 400 kHz, and up to 1.7 MHz
Three hardware address pins
Up to 8 devices can be connected to one I2C bus
Configurable INTA and INTB interrupt outputs
Polarity inversion and internal pull-up functionality
External reset input
Low standby current
Suitable for Arduino, ESP32, Raspberry Pi and other I2C-compatible controllers
Typical Applications
GPIO expansion for microcontrollers
LED and relay control
Keypads and button matrices
Sensor and switch interfaces
LCD and display control
Home automation systems
Robotics and automation projects
Industrial control panels
Multi-device embedded systems
Note: The MCP23017 is an I2C device. It should not be confused with the MCP23S17, which uses an SPI interface.
16-Bit Remote Bidirectional I/O Port:
– I/O pins default to input
High-Speed I2C Interface (MCP23017):
– 100kHz
– 400kHz
– 1.7MHz
Three Hardware Address Pins to Allow Up to Eight Devices On the Bus
Configurable Interrupt Output Pins:
Configurable as active-high, active-low
For INTA and INTB Can Be Configured to Operate
Independently or Together
Configurable Interrupt Source:
Interrupt-on-change from configured register
defaults or pin changes
Polarity Inversion Register to Configure the
Polarity of the Input Port Data
External Reset Input
Low Standby Current: 1 μA (max.)
Operating Voltage:
– 1.8V to 5.5V @ -40°C to +85°C
– 2.7V to 5.5V @ -40°C to +85°C
– 4.5V to 5.5V @ -40°C to +125°C










There are no reviews yet.