The MCP23017-E/SO device provides 16 bit, general purpose parallel I/O expansion for I2C bus or SPI applications. The device has an I2C interface. The MCP23017-E/SO consists of multiple 8 bit configuration registers for input, output and polarity selection. The system master can enable the I/Os as either inputs or outputs by writing the I/O configuration bits (IODIRA/B). The data for each input or output is kept in the corresponding input or output register. The polarity of the Input Port register can be inverted with the Polarity Inversion register. All registers can be read by the system master. The 16 bit I/O port functionally consists of two 8 bit ports (PORTA and PORTB). The MCP23017-E/SO can be configured to operate in the 8 bit or 16 bit modes via IOCON.BANK.
High speed I2C interface
Three hardware address pins to allow up to eight devices on the bus
Configurable interrupt output pins
Configurable as active high, active low or open drain
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