The PCA9555 is a 24-pin CMOS device that provides 16 bits of General Purpose parallel
Input/Output (GPIO) expansion for I2C-bus/SMBus applications and was 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, 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 PCA9555consists of two 8-bit Configuration (Input or Output selection); Input, Output
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 I2C-bus
address compatible with the PCF8575, software changes are required due to the
enhancements, and are discussed in
Application Note AN469
.
2.Features
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 I2C-bus address and allow up to eight
devices to share the same I2C-bus/SMBus. The fixed I2C-bus address of the PCA9555 is
the same as the PCA9554, allowing up to eight of these devices in any combination to
share 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 16 I/O pins which default to 16 inputs
n 0 Hz to 400 kHz clock frequency
n ESD protection exceeds 2000 V HBM per JESD22-A114, 200 V MM per
JESD22-A115, and 1000 V CDM per JESD22-C101
NXP Semiconductors
n Latch-up testing is done to JEDEC Standard JESD78 which exceeds 100 mA
n Six packages offered: DIP24, SO24, SSOP24, TSSOP24, HVQFN24 and HWQFN24
PCA9555DBSSOP24plastic shrink small outline package; 24 leads;
PCA9555PW TSSOP24plastic thin shrink small outline package; 24 leads;
PCA9555BSHVQFN24 plastic thermal enhanced very thin quad flat package;
PCA9555HFHWQFN24 plastic thermal enhanced very very thin quad flat
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
NameDescriptionVersion
SOT137-1
body width 7.5 mm
SOT340-1
body width 5.3 mm
SOT355-1
body width 4.4 mm
SOT616-1
no leads; 24 terminals; body 4 × 4 × 0.85 mm
SOT994-1
package; no leads; 24 terminals; body 4 × 4 × 0.75 mm
3.1 Ordering options
Table 2.Ordering options
Type numberTopside markTemperature range
PCA9555NPCA9555−40 °C to +85 °C
PCA9555DPCA9555D−40 °C to +85 °C
PCA9555DBPCA9555−40 °C to +85 °C
PCA9555PWPCA9555−40 °C to +85 °C
PCA9555BS9555−40 °C to +85 °C
PCA9555HFP55H−40 °C to +85 °C
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 VSSpin and the exposed center
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
DIP24, SO24,
SSOP24, TSSOP24
129
2421supply voltage
pad. The VSS pin 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 for proper heat conduction through the board thermal vias
need to be incorporated in the PCB in the thermal pad region.
Product data sheetRev. 08 — 22 October 20095 of 34
NXP Semiconductors
6.Functional description
Refer to Figure 1 “Block diagram of PCA9555”.
6.1 Device address
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
slave address
Fig 8.PCA9555 device address
6.2 Registers
6.2.1 Command byte
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. 08 — 22 October 20096 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. 08 — 22 October 20097 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 VDD at each pin. At
reset, the device's ports are inputs with a pull-up to VDD.
When power is applied to VDD, an internal power-on reset holds the PCA9555 in a reset
condition until VDDhas reached V
. 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 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 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 VDD or VSS.
Product data sheetRev. 08 — 22 October 20098 of 34
NXP Semiconductors
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
data from
shift register
data from
shift register
configuration
write pulse
read pulse
data from
shift register
write polarity
write
pulse
pulse
configuration
register
DQ
FF
CKQ
DQ
FF
CK
output port
register
At power-on reset, all registers return to default values.
Fig 9.Simplified schematic of I/Os
input port
register
DQ
FF
CK
polarity inversion
register
DQ
FF
CK
Q1
100 kΩ
Q2
output port
register data
V
DD
I/O pin
V
SS
input port
register data
to INT
polarity
inversion
register data
002aac703
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 8 “PCA9555 device address”). The command byte is
sent after the address and determines which register will receive the data following the
command byte.
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 10 and Figure 11). For example, if the first byte is sent to
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.
Product data sheetRev. 08 — 22 October 200910 of 34
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
NXP Semiconductors
SCL
slave address
SDAA
write to port
data out
from port 0
data out
from port 1
1 0 0 A2 A1 A0 0 AS0
START conditionR/W acknowledge
Fig 10. Write to Output port registers
SCL
slave address
SDAAP
1 0 0 A2 A1 A0 0 AS0
987654321
987654321
from slave
00001100
command byte
00000100
command byte
A
acknowledge
from slave
A
data to port 0
DATA 0
data to register
DATA 0
t
v(Q)
LSBMSB
0.00.7
acknowledge
from slave
data to register
data to port 1
DATA 11.01.7
DATA VALID
DATA 1
t
LSBMSB
v(Q)
A
P
A
STOP
condition
002aac220
16-bit I
2
C-bus and SMBus I/O port with interrupt
START conditionR/W acknowledge
Fig 11. Write to Configuration registers
from slave
acknowledge
from slave
acknowledge
from slave
STOP
condition
002aac221
PCA9555
NXP Semiconductors
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 8 “PCA9555 device
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 12, Figure 13 and Figure 14). Data is clocked
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 example, 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.
slave address
SDA
1 0 0 A2 A1 A000
PCA9555
16-bit I2C-bus and SMBus I/O port with interrupt
AS
COMMAND BYTE
(cont.)
A
START conditionR/W
slave address
(cont.)
S
1 0 0 A2 A1 A0 1 A0
(repeated)
START condition
Remark: Transfer can be stopped at any time by a STOP condition.
Fig 12. Read from register
acknowledge
from slave
R/W
acknowledge
from slave
acknowledge
from slave
data from lower or
upper byte of register
LSBMSB
DATA (first byte)
at this moment master-transmitter becomes master-receiver
and slave-receiver becomes slave-transmitter