The PCA9554 and PCA9554A are 16-pin CMOS devices that provide 8 bits of General
Purpose parallel Input/Output (GPIO) expansion for I2C-bus/SMBus applications and
were developed to enhance the NXP Semiconductors family of I2C-bus I/O expanders.
The improvements include higher drive capability, 5 V I/O tolerance, lower supply current,
individual I/O configuration, 400 kHz clock frequency, and smaller packaging. I/O
expanders provide a simple solution when additional I/O is needed for ACPI power
switches, sensors, push buttons, LEDs, fans, etc.
The PCA9554/PCA9554A consist of an 8-bit Configuration register (Input or Output
selection); 8-bit Input Port register, 8-bit Output Port register and an 8-bit Polarity
Inversion register (active HIGH or active LOW operation). 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 Port or Output Port register. The
polarity of the read register can be inverted with the Polarity Inversion register. All
registers can be read by the system master. Although pin-to-pin and I2C-bus address
compatible with the PCF8574 series, software changes are required due to the
enhancements and are discussed in
Application Note AN469
.
2.Features
The PCA9554/PCA9554A open-drain interrupt 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. The power-on reset sets the registers to
their default values and initializes the device state machine.
Three hardware pins (A0, A1, A2) vary the fixed I2C-bus address and allow up to eight
devices to share the same I2C-bus/SMBus. The PCA9554A is identical to the PCA9554
except that the fixed I2C-bus address is different allowing up to sixteen of these devices
(eight of each) on the same I2C-bus/SMBus.
n Operating power supply voltage range of 2.3 V to 5.5 V
n 5 V tolerant I/Os
n Polarity Inversion register
n Active LOW interrupt output
n Low standby current
n Noise filter on SCL/SDA inputs
n No glitch on power-up
n Internal power-on reset
n 8 I/O pins which default to 8 inputs
n 0 Hz to 400 kHz clock frequency
NXP Semiconductors
PCA9554/PCA9554A
8-bit I2C-bus and SMBus I/O port with interrupt
n ESD protection exceeds 2000 V HBM per JESD22-A114, 200 V MM per
JESD22-A115 and 1000 V CDM per JESD22-C101
n Latch-up testing is done to JEDEC Standard JESD78 which exceeds 100 mA
n Packages offered: DIP16, SO16, SSOP16, SSOP20, TSSOP16,
HVQFN16 (2 versions: 4 × 4 × 0.85 mm and 3 × 3 × 0.85 mm), and bare die
IO49716input/output 4
IO510817input/output 5
IO611919input/output 6
IO7121020input/output 7
INT13111interrupt output (open-drain)
SCL14122serial clock line
SDA15134serial data line
V
DD
n.c.--3, 8, 13, 18not connected
PCA9554/PCA9554A
8-bit I2C-bus and SMBus I/O port with interrupt
DIP16, SO16,
SSOP16, TSSOP16
86
16145supply voltage
HVQFN16 SSOP20
[1]
15supply ground
[1] HVQFN package die supply groundis connected to both VSSpin and exposed center pad. VSSpin must be
connected to supply ground for proper device operation. For enhanced thermal, electrical, and board level
performance, the exposed pad needs to be soldered to the board using a corresponding thermal pad on the
board and forproper heat conduction through the board, thermal vias need to be incorporated in the PCB in
the thermal pad region.
6.Functional description
Refer to Figure 1 “Block diagram of PCA9554/PCA9554A”.
6.1 Registers
6.1.1 Command byte
Table 3.Command byte
CommandProtocolFunction
0read byteInput Port register
1read/write byteOutput Port register
2read/write bytePolarity Inversion register
3read/write byteConfiguration register
The command byte is the first byte to follow the address byte during a write transmission.
It is used as a pointer to determine which of the following registers will be written or read.
Product data sheetRev. 07 — 13 November 20066 of 30
NXP Semiconductors
6.1.2 Register 0 - Input Port register
This register is a read-only port. It reflects the incoming logic levels of the pins, regardless
of whether the pin is defined as an input or an output by Register 3. Writes to this register
have no effect.
The default ‘X’ is determined by the externally applied logic level, normally ‘1’ when no
external signal externally applied because of the internal pull-up resistors.
Table 4.Register 0 - Input Port register bit description
This register reflects the outgoing logic levels of the pins defined as outputs by Register 3.
Bit values in this register have no effect on pins defined as inputs. Reads from this register
return the value that is in the flip-flop controlling the output selection, not the actual pin
value.
Table 5.Register 1 - Output Port register bit description
Product data sheetRev. 07 — 13 November 20067 of 30
NXP Semiconductors
6.1.4 Register 2 - Polarity Inversion register
This register allows the user to invert the polarity of the Input Port register data. If a bit in
this register is set (written with ‘1’), the corresponding Input Port data is inverted. If a bit in
this register is cleared (written with a ‘0’), the Input Port data polarity is retained.
Table 6.Register 2 - Polarity Inversion register bit description
Legend: * default value.
BitSymbolAccessValueDescription
7N7R/W0*inverts polarity of Input Port register data
6N6R/W0*
5N5R/W0*
4N4R/W0*
3N3R/W0*
2N2R/W0*
1N1R/W0*
0N0R/W0*
PCA9554/PCA9554A
8-bit I2C-bus and SMBus I/O port with interrupt
0 = Input Port register data retained (default value)
1 = Input Port register data inverted
6.1.5 Register 3 - Configuration register
This register configures the directions of the I/O pins. If a bit in this register is set, the
corresponding port pin is enabled as an input with high-impedance output driver.If a bit in
this register is cleared, the corresponding port pin is enabled as an output. At reset, the
I/Os are configured as inputs with a weak pull-up to VDD.
Table 7.Register 3 - Configuration register bit description
Legend: * default value.
BitSymbolAccessValueDescription
7C7R/W1*configures the directions of the I/O pins
6C6R/W1*
5C5R/W1*
4C4R/W1*
3C3R/W1*
2C2R/W1*
1C1R/W1*
0C0R/W1*
6.2 Power-on reset
When power is applied to VDD, an internal Power-On Reset (POR) holds the
PCA9554/PCA9554A in a reset condition until VDD has reached V
reset condition is released and the PCA9554/PCA9554A registers and state machine will
initialize to their default states. Thereafter, VDD must be lowered below 0.2 V to reset the
device.
0 = corresponding port pin enabled as an output
1 = corresponding port pin configured as input
(default value)
. At that point, the
POR
For a power reset cycle, VDD must be lowered below 0.2 V and then restored to the
operating voltage.
Product data sheetRev. 07 — 13 November 20068 of 30
NXP Semiconductors
6.3 Interrupt output
The open-drain interrupt output is activated when one of the port pins change state and
the pin is configured as an input. The interrupt is deactivated when the input returns to its
previous state or the Input Port register is read.
Note that changing an I/O from and output to an input may cause a false interrupt to occur
if the state of the pin does not match the contents of the Input Port register.
6.4 I/O port
When an I/O is configured as an input, FETs Q1 and Q2 are off, creating a
high-impedance input with a weak pull-up (100 kΩ typ.) to VDD. The input voltage may be
raised above VDD to a maximum of 5.5 V.
If the I/O is configured as an output, then either Q1 or Q2 is enabled, depending on the
state of the Output Port register. Care should be exercised if an external voltage is applied
to an I/O configured as an output because of the low-impedance paths that exist between
the pin and either VDD or VSS.
PCA9554/PCA9554A
8-bit I2C-bus and SMBus I/O port with interrupt
data from
shift register
data from
shift register
write configuration
pulse
write pulse
read pulse
data from
shift register
write polarity
pulse
configuration
register
DQ
FF
CKQ
DQ
FF
CK
output port
register
input port
register
DQ
FF
CK
polarity inversion
register
DQ
FF
CK
Q1
100 kΩ
Q2
output port
register data
V
DD
IO0 to IO7
V
SS
input port
register data
to INT
polarity inversion
register data
002aac493
Remark: At power-on reset, all registers return to default values.