Philips Semiconductors
Product data
PCA9544
4-channel I2C multiplexer with interrupt logic
2002 Jul 26
5
DEVICE ADDRESSING
Following a START condition the bus master must output the
address of the slave it is accessing. The address of the PCA9544 is
shown in Figure 4. To conserve power, no internal pullup resistors
are incorporated on the hardware selectable address pins and they
must be pulled HIGH or LOW.
A1 A0
0A2
SW00862
1
R/W
FIXED
HARDWARE SELECTABLE
Figure 4. Slave address
The last bit of the slave address defines the operation to be
performed. When set to logic 1, a read is selected while a logic 0
selects a write operation.
CONTROL REGISTER
Following the successful acknowledgement of the slave address,
the bus master will send a byte to the PCA9544 which will be stored
in the Control Register. If multiple bytes are received by the
PCA9544, it will save the last byte received. This register can be
written and read via the I2C bus.
INT2 INT1 INT0
B2
B1
B0
CHANNEL SELECTION BITS
INTERRUPT BITS
INT3
SW00386
X
(READ ONLY)
(READ/WRITE)
6
5
4
2
1
0
7
3
ENABLE BIT
Figure 5. Control register
CONTROL REGISTER DEFINITION
A SCx/SDx downstream pair, or channel, is selected by the contents
of the control register. This register is written after the PCA9544 has
been addressed. The 3 LSBs of the control byte are used to
determine which channel is to be selected. When a channel is
selected, it will become active after a stop condition has been placed
on the I2C bus. This ensures that all SCx/SDx lines will be in a HIGH
state when the channel is made active, so that no false conditions
are generated at the time of connection.
Table 1. Control Register; Write — Channel Selection/
Read — Channel Status
INT3
INT2
INT1
INT0
D3
B2
B1
B0
COMMAND
X
0
X
No channel
selected
X
1
0
Channel 0
enabled
X
1
0
1
Channel 1
enabled
X
1
0
Channel 2
enabled
X
1
Channel 3
enabled
INTERRUPT HANDLING
The PCA9544 provides 4 interrupt inputs, one for each channel and
one open drain interrupt output. When an interrupt is generated by any
device, it will be detected by the PCA9544 and the interrupt output
will be driven LOW. The channel need not be active for detection of
the interrupt. A bit is also set in the control byte. Bits 4 – 7 of the
control byte correspond to channels 0 – 3 of the PCA9544,
respectively. Therefore, if an interrupt is generated by any device
connected to channel 2, the state of the interrupt inputs is loaded into
the control register when a read is accomplished. Likewise, an
interrupt on any device connected to channel 0 would cause bit 4 of
the control register to be set on the read. The master can then
address the PCA9544 and read the contents of the control byte to
determine which channel contains the device generating the interrupt.
The master can then reconfigure the PCA9544 to select this
channel, and locate the device generating the interrupt and clear it.
The interrupt clears when the device originating the interrupt clears.
It should be noted that more than one device can be providing an
interrupt on a channel, so it is up to the master to ensure that all
devices on a channel are interrogated for an interrupt.
The interrupt inputs may be used as general purpose inputs if the
interrupt function is not required.
If unused, interrupt input(s) must be connected to VDD through a
pull-up resistor.
Table 2. Control Register Read — Interrupt
INT3
INT2
INT1
INT0
D3
B2
B1
B0
COMMAND
X
0
X
No interrupt
on channel 0
X
1
X
Interrupt on
channel 0
X
0
X
No interrupt
on channel 1
X
1
X
Interrupt on
channel 1
X
0
X
No interrupt
on channel 2
X
1
X
Interrupt on
channel 2
0
X
No interrupt
on channel 3
1
X
Interrupt on
channel 3
NOTE: Several interrupts can be active at the same time.
Ex: INT3 = 0, INT2 = 1, INT1 = 1, INT0 = 0, means that there is no
interrupt on channels 0 and 3, and there is interrupt on channels 1
and 2.
POWER-ON RESET
When power is applied to VDD, an internal Power On Reset holds
the PCA9544 in a reset state until VDD has reached VPOR. At this
point, the reset condition is released and the PCA9544 registers and
I2C state machine are initialized to their default states, all zeroes
causing all the channels to be deselected.