The MCP23017/MCP23S17 (MCP23X17) devicefamily provides 16-bit, general purpose parallel I/Oexpansion for I2C bus or SPI applications. The twodevices differ only in the serial interface:• MCP23017T-E/SO – I2C interface• MCP23S17 – SPI interfaceThe MCP23X17 consists of multiple 8-bit configurationregisters for input, output and polarity selection. Thesystem master can enable the I/Os as either inputs oroutputs by writing the I/O configuration bits (IODIRA/B).The data for each input or output is kept in thecorresponding input or output register. The polarity ofthe Input Port register can be inverted with the PolarityInversion register. All registers can be read by thesystem master.
The 16-bit I/O port functionally consists of two 8-bitports (PORTA and PORTB). The MCP23X17 can beconfigured to operate in the 8-bit or 16-bit modes viaIOCON.BANK.There are two interrupt pins, INTA and INTB, that canbe associated with their respective ports, or can belogically OR’ed together so that both pins will activate ifeither port causes an interrupt.The interrupt output can be configured to activateunder two conditions (mutually exclusive):1. When any input state differs from itscorresponding Input Port register state. This isused to indicate to the system master that aninput state has changed.2. When an input state differs from a preconfigured register value (DEFVAL register).
The Interrupt Capture register captures port values atthe time of the interrupt, thereby saving the conditionthat caused the interrupt.The Power-on Reset (POR) sets the registers to theirdefault values and initializes the device state machine.The hardware address pins are used to determine thedevice address.
16-bit input/output port expander with interrupt output
Cascadable for up to 8 devices on one bus
25mA sink/source capability per I/O
Supports 100kHz, 400kHz and 1.7MHz I2C™Compatible compatible modes
Packaging
Reel
Factory Pack Quantity
1600