- All Implemented Interfaces:
- InputEventListener<DigitalInputEvent>, DeviceFactoryInterface, GpioDeviceFactoryInterface, Closeable, AutoCloseable
public class MCP23017
extends AbstractDeviceFactory
implements GpioDeviceFactoryInterface, InputEventListener<DigitalInputEvent>, Closeable
http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf
The MCP23X17 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 MCP23X17 can be
configured to operate in the 8-bit or 16-bit modes via IOCON.BANK
There are two interrupt pins, INTA and INTB, that can be associated with their respective ports, or can be
logically OR'ed together so that both pins will activate if either port causes an interrupt.
A special mode (Byte mode with IOCON.BANK = 0) causes the address pointer to toggle between
associated A/B register pairs. For example, if the BANK bit is cleared and the Address Pointer is initially set
to address 12h (GPIOA) or 13h (GPIOB), the pointer will toggle between GPIOA and GPIOB. Note that the
Address Pointer can initially point to either address in the register pair.