# MCP23017 16-bit I2C I/O Expander Module CJMCU-2317

- Page: https://sigmanortec.ro/en/mcp23017-16-bit-i2c-i-o-expander-module-cjmcu-2317
- Price: 23.07 RON
- Availability: In stock; 1-2 zile
- Reference: 88289 · EAN: 5943519644806
- Category: Mechatronics and IoT > Sensors and Modules > Expansion Module
- Specifications: Supply voltage: 3.3-5.5 V DC; Dimensions: 21 x 26.5 mm; Operating temperature: -40 ~ 85 °C; Interface: I2C; Maximum current: 25 mA; Operating frequency: pana la 1.7 MHz; Integrated circuit: MCP23017; Standby consumption: 1 µA (maxim); I2C address: 0x20-0x27; Number of digital I/O pins: 16 (2 porturi x 8, GPA0 - GPA7 si GPB0 - GPB7)
- Updated: 2026-10-28
- Shop: [Sigmanortec.ro](https://sigmanortec.ro/en/llms.txt)
- Prices: RON, VAT included; prices and stock as of 2026-11-11 05:15 (Europe/Bucharest)

## Description

The MCP23017 CJMCU-2317 expander module adds 16 digital input/output pins to a development board via the I2C interface, combining the MCP23017 circuit with two rows of pins for quick breadboard mounting. It is suitable when the number of GPIO pins on the microcontroller is not enough, for example to control multiple relays, LEDs, LED displays, buttons, or switches, or to read a large number of digital inputs.
The MCP23017 chip is a 16-bit I2C expander organized into two 8-pin ports, GPA0 - GPA7 and GPB0 - GPB7, with each pin individually configurable as input or output and featuring an internal 100 kOhm pull-up resistor that can be enabled in software. Communication uses the I2C interface at speeds of 100 kHz, 400 kHz, or 1.7 MHz, and the bus address is set using pins A0, A1, and A2, resulting in 8 possible addresses between 0x20 and 0x27 and allowing up to 8 identical modules to be connected on the same SDA SCL pair. The module has two programmable interrupt outputs, INTA and INTB, generated automatically when the state of an input changes, a polarity register for inverting input logic, and an internal power-on reset circuit.
Among the main features are the MCP23017 circuit in SOIC package, the integrated pull-up resistor network for the I2C lines, two rows of pins for power, control, and the 16 I/O channels, as well as mounting holes on the board, and power is supplied directly through the module’s VCC and GND pins.
Through the I2C interface, the module is compatible with Arduino, ESP32, STM32, Raspberry Pi, and any other development board or microcontroller that has SDA and SCL pins.
Specifications:
Supply voltage: 3.3 - 5.5 VDC
Idle current: 1 uA (maximum)
Chip: MCP23017
Interface: I2C (IIC)
I/O pin count: 16 (2 ports x 8, GPA0 - GPA7 and GPB0 - GPB7)
I2C frequency: up to 1.7 MHz (100 kHz / 400 kHz / 1.7 MHz)
Maximum I/O pin current: 25 mA
Total package current: 125 mA
Internal pull-up resistors: 100 kOhm, individually configurable on each pin
Interrupt outputs: INTA, INTB, configurable as active-high, active-low, or open-drain
I2C address: 0x20 - 0x27
Address configuration pins: A0, A1, A2 (up to 8 modules on the same bus)
Operating temperature: -40 - 85 degrees Celsius
Dimensions: 21 x 26.5 mm
Layout:
1. MCP23017 expander circuit: The original integrated circuit, in SOIC package, that converts I2C commands into 16 digital input or output lines.
2. Pull-up resistor network: Integrated resistor network used as pull-up for the SDA and SCL lines, sufficient for short connections on the same bus.
3. Header with power and control pins: Groups the VCC, GND, SCL, SDA, RESET, A0, A1, A2, INTA, and INTB pins.
4. Header with input/output pins: Groups the 16 digital channels GPA0 - GPA7 and GPB0 - GPB7.
5. Mounting holes: Perforations for mounting the board on a support or in an enclosure.
Pinout:
Connector
Pin
Function
Power and control header
VCC
3.3 - 5.5 VDC power supply
Power and control header
GND
Common ground
Power and control header
SCL
I2C clock line
Power and control header
SDA
I2C data line
Power and control header
RESET
Active-low reset, connect to VCC for normal operation
Power and control header
A0, A1, A2
I2C address configuration, each pin to GND or VCC
Power and control header
INTA
Port A interrupt output
Power and control header
INTB
Port B interrupt output
I/O header
GPA0 - GPA7
8 digital input or output pins, port A
I/O header
GPB0 - GPB7
8 digital input or output pins, port B
A2
A1
A0
I2C address
GND
0x20
GND
VCC
0x21
GND
VCC
GND
0x22
GND
VCC
0x23
VCC
GND
0x24
VCC
GND
VCC
0x25
VCC
GND
0x26
VCC
0x27
Diagram and I2C address:
The connection diagram shows the minimum link between the module and the development board, through the VCC, GND, SCL, and SDA pins, and the address table shows exactly the combinations of A0, A1, and A2 pins that give the 8 possible addresses, between 0x20 and 0x27, for using multiple modules on the same bus.
Usage:
Connect the module’s VCC and GND pins to a 3.3 V or 5 V supply, depending on the logic level of the development board, and connect SCL and SDA to the corresponding I2C lines.
Connect the RESET pin directly to VCC or through a 10 kOhm resistor, so that the module does not remain stuck in reset and can be correctly detected on the bus.
Set the desired I2C address by connecting pins A0, A1, and A2 to GND or VCC, for example all three to GND for address 0x20, according to the address table.
Configure each of the 16 pins GPA0 - GPA7 and GPB0 - GPB7 as input or output in software before reading or writing their state, because after power-up all pins default to inputs.
For inputs connected to buttons or switches, enable the internal pull-up in software and avoid additional external resistors, unless another configuration is required.
For loads such as relays or LEDs, respect the maximum current of 25 mA per I/O pin and the total 125 mA package current, and for larger loads use transistors or separate relay modules.
For applications with multiple modules on the same bus, assign a unique address to each one using the A0, A1, A2 combination, up to a maximum of 8 modules simultaneously.
To reduce constant polling of the I2C bus, use the INTA and INTB outputs, which go LOW when an input on the corresponding port changes, and read the interrupt registers to determine which pin and state generated the interrupt.
For connections longer than a few centimeters or for multiple modules on the same bus, add external 4.7 kOhm pull-up resistors on SDA and SCL, in addition to the module’s internal network.
Dimension diagram:
