The PCA9555 is a 24-pin CMOS device that provides 16 bits of General Purpose parallel
Input/Output (GPIO) expansion for I
enhance the NXP Semiconductors family of I
include higher drive capability, 5 V I/O tolerance, lower supply current, individual I/O
configuration, and smaller packaging. I/O expanders provide a simple solution when
additional I/O is needed for ACPI power switch es, se nsors, p ush buttons, LEDs, fans, etc.
The PCA9555 consists of two 8-bit Configuration (Input or Output selection); Input, Outp ut
and Polarity Inversion (active HIGH or active LOW operation) registers. 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 read register can be inverted with the Polarity Inversion
register. All registers can be read by the system master. Although pin-to-pin and I
address compatible with the PCF8575, software changes are requir ed due to the
enhancements, and are discussed in Application Note AN469.
The PCA9555 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 I
devices to share the same I
the same as the PCA9554, allowing up to eight of these devices in any combination to
share the same I
2
C-bus/SMBus.
2
C-bus/SMBus. The fixed I2C-bus address of the PCA9555 is
2
C-bus/SMBus applications and was developed to
2
C-bus I/O expanders. The improvements
2
C-bus
2
C-bus address and allow up to eight
2. Features and benefits
Operating power supply voltage range of 2.3 V to 5.5 V
5 V tolerant I/Os
Polarity Inversion register
Active LOW interrupt output
Low standby current
Noise filter on SCL/SDA inputs
No glitch on power-up
Internal power-on reset
16 I/O pins which default to 16 inputs
0 Hz to 400 kHz clock frequency
ESD protection exceeds 2000 V HBM per JESD22-A114, 200 V MM per
JESD22-A115, and 1000 V CDM per JESD22-C101
NXP Semiconductors
Latch-up testing is done to JEDEC Standard JESD78 which exceeds 100 mA
Five packages offered: SO24, SSOP24, TSSOP24, HVQFN24 and HWQFN24
3. Ordering information
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Table 1.Ordering information
Type numberTopside markPackage
NameDescriptionVersion
PCA9555DPCA9555DSO24plastic small outline package; 24 leads;
body width 7.5 mm
PCA9555DBPCA9555SSOP24plastic shrink small outline package; 24 leads;
bodywidth 5.3 mm
PCA9555PWPCA9555TSSOP24plastic thin shrink small outline package; 24 leads;
body width 4.4 mm
PCA9555BS9555HVQFN24plastic thermal enhanced very thin quad flat package;
no leads; 24 terminals; body 4 4 0.85 mm
PCA9555HFP55HHWQFN24plastic thermal enhanced very very thin quad flat
package; no leads; 24 terminals; body 4 4 0.75 mm
Product data sheetRev. 10 — 8 November 2017 4 of 34
NXP Semiconductors
5.2 Pin description
Table 3.Pin description
SymbolPinDescription
INT
A1223address input 1
A2324address input 2
IO0_041port 0 input/output
IO0_152
IO0_263
IO0_374
IO0_485
IO0_596
IO0_6107
IO0_7118
V
SS
IO1_01310port 1 input/output
IO1_11411
IO1_21512
IO1_31613
IO1_41714
IO1_51815
IO1_61916
IO1_72017
A02118address input 0
SCL2219serial clock line
SDA2320serial data line
V
DD
[1] HVQFN and HWQFN package die supply ground is connected to both the VSS pin and the exposed center
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
SO24, SSOP24,
TSSOP24
122interrupt output (open-drain)
129
2421supply voltage
pad. The V
electrical, and board-level performance, the exposed pad needs to be soldered to the board using a
corresponding thermal pad on the board, and for proper heat conduction through the board thermal vias
need to be incorporated in the PCB in the thermal pad region.
pin must be connected to supply ground for proper device operation. For enhanced thermal,
Product data sheetRev. 10 — 8 November 2017 5 of 34
NXP Semiconductors
R/W
002aac219
0100A2 A1 A0
programmable
slave address
fixed
6. Functional description
Refer to Figure 1 “Block diagram of PCA9555”.
6.1 Device address
Fig 7.PCA9555 device address
6.2 Registers
6.2.1 Command byte
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
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.
Table 4.Command byte
CommandRegister
0Input port 0
1Input port 1
2Output port 0
3Output port 1
4Polarity Inversion port 0
5Polarity Inversion port 1
6Configuration port 0
7Configuration port 1
Product data sheetRev. 10 — 8 November 2017 6 of 34
NXP Semiconductors
6.2.2 Registers 0 and 1: Input port registers
This register is an input-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 value ‘X’ is determined by the externally applied logic level.
This register is an output-only port. It reflects the outgoing logic levels of the pins defined
as outputs by Registers 6 and 7. Bit values in this register have no effect on pins defined
as inputs. In turn, reads from this register reflect the value that is in the flip-flop controlling
the output selection, not the actual pin value.
6.2.4 Registers 4 and 5: Polarity Inversion registers
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 Input port data polarity is inverted. If a bit in this
register is cleared (written with a ‘0’), the Input port data polarity is retained.
Product data sheetRev. 10 — 8 November 2017 7 of 34
NXP Semiconductors
6.2.5 Registers 6 and 7: Configuration registers
This register configures the directions of the I/O pins. If a bit in this register is set (written
with ‘1’), the corresponding port pin is enabled as an input with high-impedance output
driver. If a bit in this register is cleared (written with ‘0’), the corresponding port pin is
enabled as an output. Note that there is a high value resistor tied to V
reset, the device's ports are inputs with a pull-up to V
When power is applied to VDD, an internal power-on reset holds the PCA9555 in a reset
condition until V
has reached V
DD
. At that point, the reset condition is released and the
POR
PCA9555 registers and SMBus state machine will initialize to their default states. The
power-on reset typically completes the reset and enables the part by the time the power
supply is above V
. However, when it is required to reset the part by lowering the power
POR
supply, it is necessary to lower it below 0.2 V.
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 to V
V
to a maximum of 5.5 V.
DD
If the I/O is configured as an output, then either Q1 or Q2 is on, 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 path that exists between the
pin and either V
Product data sheetRev. 10 — 8 November 2017 8 of 34
NXP Semiconductors
V
DD
I/O pin
output port
register data
configuration
register
DQ
CKQ
data from
shift register
write
configuration
pulse
output port
register
DQ
CK
write pulse
polarity inversion
register
DQ
CK
data from
shift register
write polarity
pulse
input port
register
DQ
CK
read pulse
input port
register data
polarity
inversion
register data
002aac703
FF
data from
shift register
FF
FF
FF
Q1
Q2
V
SS
to INT
100 kΩ
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
Fig 8.Simplified schematic of I/Os
6.5 Bus transactions
6.5.1 Writing to the port registers
Data is transmitted to the PCA9555 by sending the device address and setting the least
significant bit to a logic 0 (see Figure 7 “
sent after the address and determines which register will receive the data following the
command byte.
Product data sheetRev. 10 — 8 November 2017 9 of 34
The eight registers within the PCA9555 are configured to operate as four register pairs.
The four pairs are Input Ports, Output Ports, Polarity Inversion Ports, and Configuration
Ports. After sending data to one register, the next data byte will be sent to the other
register in the pair (see Figure 9
Output Port 1 (register 3), then the next byte will be stored in Output Port 0 (register 2).
There is no limitation on the number of data bytes sent in one write transmission. In this
way, each 8-bit register may be updated independently of the other registers.
At power-on reset, all registers return to default values.
PCA9555 device address”). The command byte is
and Figure 10). For example, if the first byte is sent to
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxx x x x xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xx xx xxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxx xxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxx x x
xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxx xxx
Product data sheetRev. 10 — 8 November 2017 10 of 34
NXP Semiconductors
PCA9555
16-bit I
2
C-bus and SMBus I/O port with interrupt
Fig 9. Write to Output port registers
1 0 0 A2 A1 A0 0 AS0
START conditionR/W acknowledge
from slave
002aac220
A
SCL
SDAA
write to port
data out
from port 0
P
t
v(Q)
987654321
command byte
data to port 0
DATA 0
slave address
00000100
STOP
condition
0.00.7
acknowledge
from slave
acknowledge
from slave
data to port 1
DATA 11.01.7
A
data out
from port 1
t
v(Q)
DATA VALID
Fig 10. Write to Configuration registers
1 0 0 A2 A1 A0 0 AS0
START conditionR/W acknowledge
from slave
002aac221
A
SCL
SDAAP
987654321
command byte
data to register
DATA 0
slave address
00001100
STOP
condition
LSBMSB
acknowledge
from slave
acknowledge
from slave
data to register
DATA 1
LSBMSB
A
NXP Semiconductors
AS
START conditionR/W
acknowledge
from slave
002aac222
A
acknowledge
from slave
SDA
AP
acknowledge
from master
DATA (first byte)
slave address
STOP
condition
S
(repeated)
START condition
(cont.)
(cont.)
1 0 0 A2 A1 A0 1 A0
R/W
acknowledge
from slave
slave address
at this moment master-transmitter becomes master-receiver
and slave-receiver becomes slave-transmitter
NA
no acknowledge
from master
COMMAND BYTE
1 0 0 A2 A1 A000
data from lower or
upper byte of register
LSBMSB
DATA (last byte)
data from upper or
lower byte of register
LSBMSB
6.5.2 Reading the port registers
In order to read data from the PCA9555, the bus master must first send the PCA9555
address with the least significant bit set to a logic 0 (see Figure 7 “
address”). The command byte is sent after the address and determines which register will
be accessed. After a restart, the device address is sent again, but this time the least
significant bit is set to a logic 1. Data from the register defined by the command byte will
then be sent by the PCA9555 (see Figure 11
into the register on the falling edge of the acknowledge clock pulse. After the first byte is
read, additional bytes may be read but the data will now reflect the information in the other
register in the pair . For examp le, if you read Input Port 1, then the next byte read would be
Input Port 0. There is no limitation on the number of data bytes received in one read
transmission but the final byte received, the bus master must not acknowledge the data.
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
PCA9555 device
, Figure 12 and Figure 13). Data is clocked
Fig 11. Read from register
Remark: Transfer can be stopped at any time by a STOP condition.