This 8-bit I/O expander for the two-line bidirectional bus
(I2C) is designed for 2.3-V to 5.5-V VCC
operation. It provides general-purpose remote I/O expansion for most microcontroller families via
the I2C interface [serial clock (SCL) and serial data (SDA)].
The PCA6107 consists of one 8-bit Configuration (input or output selection), Input Port,
Output Port, and Polarity Inversion (active high) registers. At power on, the I/Os are configured
as inputs. However, the system master can enable the I/Os as either inputs or outputs by writing to
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 system master can reset the PCA6107 in the event of a timeout or other improper
operation by asserting a low in the active-low reset (RESET) input. The
power-on reset puts the registers in their default states and initializes the
I2C/SMBus state machine. Asserting RESET causes
the same reset/initialization to occur without depowering the part.
The PCA6107 open-drain interrupt (INT) output is activated when
any input state differs from its corresponding Input Port register state and is used to indicate to
the system master that an input state has changed.
INT can be connected to the interrupt input of a microcontroller.
By sending an interrupt signal on this line, the remote I/O can inform the microcontroller if there
is incoming data on its ports without having to communicate via the I2C
bus. Thus, the PCA6107 can remain a simple slave device.
The device outputs (latched) have high-current drive capability for directly driving
LEDs. The device has low current consumption and a high-impedance open-drain output pin, P0.
Three hardware pins (A0, A1, and A2) are used to program and vary the fixed
I2C address, allowing up to eight devices to share the same
I2C bus or SMBus.