PCBWiki
ActiveMicrochip Technology Inc. · 28-pin QFN, wide SOIC, SPDIP, or SSOP

MCP23017 PCB Design Guide: Footprint, Pinout, and Alternatives

16-bit I2C GPIO expander with two interrupt outputs, three address pins, and per-pin pull-ups.

MCP23017 adds two eight-bit GPIO banks over I2C, with three hardware address pins, per-pin direction and pull-up control, polarity inversion, and two interrupt outputs. It supports up to eight devices per bus, but two nominal GPIOs are not bidirectional: GPA7 and GPB7 are output only on MCP23017.

The bus headline also needs voltage context. 100 kHz works from 1.8 V to 5.5 V, 400 kHz mode requires 2.7 V to 5.5 V, and 1.7 MHz mode requires 4.5 V to 5.5 V. A 3.3 V design is therefore bounded to 400 kHz by the current Rev D timing table.

Firmware failures usually come from the register map and interrupt state machine, not I2C wiring. IOCON.BANK changes the register addresses, interrupt comparison can use either the previous port state or DEFVAL, and reading the wrong register at the wrong time can leave the interrupt asserted.

What breaks boards

  1. GPA7 and GPB7 are output only

    Current DS20001952D explicitly restricts these two pins on MCP23017 even though the family is described as a 16-bit port. Budget only fourteen bidirectional pins plus two output-only pins.

  2. BANK changes the register map

    BANK=0 is the reset default with A/B registers interleaved. BANK=1 separates the Port A and Port B register blocks. Driver addresses must match the configured mode.

  3. 1.7 MHz needs a 4.5 V supply

    400 kHz mode requires 2.7 V to 5.5 V and 1.7 MHz mode requires 4.5 V to 5.5 V. Do not configure Fast-mode Plus on a 3.3 V rail.

  4. 25 mA is a per-pin capability, not a simultaneous 16-pin current budget

    Use the guaranteed VOL/VOH test currents and the absolute maximum VDD/VSS totals when budgeting a loaded port. Driving every output at the marketing parametric simultaneously is not justified.

  5. Slow supply ramps can miss POR guidance

    Table 1-1 gives 0.05 V/ms minimum VDD rise-rate design guidance to ensure power-on reset and says it is not tested. Use RESET when the supply ramp may be slower or uncertain.

Key specifications

ParameterValueSource
Port16-bit remote port; GPA7 and GPB7 are output only on MCP23017DS20001952D Features
Supply1.8 V to 5.5 V at -40 C to +85 C; 4.5 V to 5.5 V at -40 C to +125 CDS20001952D Features and Table 1-1
I2C modes100 kHz at 1.8 V to 5.5 V; 400 kHz mode requires 2.7 V to 5.5 V; 1.7 MHz mode requires 4.5 V to 5.5 VDS20001952D Table 1-3
AddressingThree hardware address pins permit up to eight devices on one busDS20001952D Features
Standby current1 uA maximum from -40 C to +85 C; 3 uA maximum at +85 C to +125 C with 4.5 V to 5.5 V supplyDS20001952D Table 1-1 D005
GPIO output testsVOL 0.6 V maximum at 8 mA and VDD 4.5 V; VOH VDD - 0.7 V minimum at -3 mA and VDD 4.5 VDS20001952D Table 1-1 D080/D090
Weak pull-up40 uA minimum, 75 uA typical, 115 uA maximum at VDD 5 VDS20001952D Table 1-1 D070
Power-on reset rise rate0.05 V/ms minimum design guidance to ensure POR; not testedDS20001952D Table 1-1 D003
InterruptsINTA and INTB can operate independently or together and compare pin changes or DEFVALDS20001952D Features and device overview

Verified against the manufacturer datasheet on 2026-07-14. Confirm the current revision before production use.

Alternatives

  • MCP23S17: SPI variant from the same family; use when the host has spare SPI or bus speed/capacitance makes I2C unattractive.
  • MCP23008: Eight-bit I2C sibling when sixteen pins and the larger package are unnecessary.
  • TCA9555: TI 16-bit I2C expander alternative; compare register behavior, interrupt semantics, pinout, and drive limits before substitution.

Common questions

How many MCP23017 devices can share one I2C bus?
Eight, selected by A2:A1:A0. Confirm 7-bit addressing in firmware and size the bus pull-ups for total capacitance.
Can MCP23017 run at 1.7 MHz from 3.3 V?
No. Revision D specifies 1.7 MHz only from 4.5 V to 5.5 V; at 3.3 V the supported ceiling is 400 kHz.
Are all sixteen pins bidirectional?
No. GPA7 and GPB7 are output only on MCP23017 according to the current datasheet.

Sources

Found an error? Submit a correction — we verify every correction against the manufacturer’s datasheet.