This 16-bit I/O expander for the two-line bidirectional bus
(I2C) is designed to provide general-purpose remote I/O expansion for
most microcontroller families via the I2C interface [serial clock (SCL)
and serial data (SDA)].
The major benefit of this device is its wide VCC range. It can
operate from 1.65 V to 5.5 V on the P-port side and on the SDA/SCL side. This allows the TCA6416 to
interface with next-generation microprocessors and microcontrollers on the SDA/SCL side, where
supply levels are dropping down to conserve power. In contrast to the dropping power supplies of
microprocessors and microcontrollers, some PCB components, such as LEDs, remain at a 5-V power
The bidirectional voltage level translation in the TCA6416 is provided through
VCCI. VCCI should be connected to the
VCC of the external SCL/SDA lines. This indicates the
VCC level of the I2C bus to the TCA6416. The
voltage level on the P-port of the TCA6416 is determined by the VCCP.
The TCA6416 consists of two 8-bit Configuration (input or output selection), Input,
Output, 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 TCA6416 in the event of a timeout or other improper
operation by asserting a low in the RESET input. The power-on reset puts the
registers in their default state and initializes the I2C/SMBus state
machine. The RESET pin causes the same reset/initialization to occur without
depowering the part.
The TCA6416 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 TCA6416 can remain a simple slave device.
The device P-port outputs have high-current sink capabilities for directly driving LEDs
while consuming low device current.
One hardware pin (ADDR) can be used to program and vary the fixed
I2C address and allow up to two devices to share the same
I2C bus or SMBus.