The MCP23018-E/MJ is a 16-bit parallel I/O Expander for I2C bus or SPI applications. It 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. 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 (2) 8-bit ports (PORTA and PORTB). The MCP23X18 can be configured to operate in 8-bit mode or 16-bit mode via IOCON.BANK. There are two interrupt pins, INTA and INTB which can be associated with their respective ports or can be logically OR'ed together so both pins will activate if either port causes an interrupt.
Single hardware address pin
Voltage input to allow up to eight devices on the bus
Configurable interrupt output pins
Configurable as active-high, active-low or open-drain
Interrupt-on-change from configured defaults or pin change
Polarity inversion register to configure the polarity of the input port data