Port Expnd

A port expander moves pin control onto a serial bus. Its register settings determine the supported input and output functions, but not every pin is equivalent: Microchip specifies GPA7 and GPB7 as output only on MCP23017. PCF8574 instead uses quasi-bidirectional ports, so its configuration and drive behaviour differ.

A host exchanges register or port data over the expander's serial interface. MCP23017 uses I²C and MCP23S17 uses SPI; these devices provide direction and pull-up configuration registers. PCF8574 instead uses quasi-bidirectional ports without the same direction-register model. Firmware must match the exact part.

In plain terms

A power bar for GPIO: you plug your microcontroller's two-wire I²C bus into the port expander and get 8 or 16 new I/O pins out, without running any more wires back to the main board.

Why designers use it

Best for

Key specifications

When not to use it

Common mistakes

Where you will find it

A short history

Port expanders let a serial bus serve more digital connections without adding a separate host pin for every signal. The design still depends on the device: register-controlled GPIO and quasi-bidirectional ports behave differently. Check direction restrictions, output current, addressing and interrupt behaviour instead of treating every expander as interchangeable.

Related