Philips Semiconductors Product data sheet
PCA9564Parallel bus to I
2
C-bus controller
2006 Sep 01
4
SW02262
SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0
I2CDAT – DATA REGISTER – READ/WRITE
BUS BUFFER
SDA CONTROL
AA ENSIO STA STO SI
FILTER
SCL CONTROL
ENSIO STA STO SI
FILTER
PCA9564
SDA
SCL
TE TO6 TO5 TO4 TO3 TO2 TO1 TO0
I2CTO – TIMEOUT REGISTER – WRITE ONLY
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
I2CADR – OWN ADDRESS – READ/WRITE
ST7 ST6 ST5 ST4 ST3 ST2 ST1 ST0
I2CSTA – STATUS REGISTER – READ ONLY
AA ENSIO STA STO SI CR2 CR1 CR0
I2CCON – CONTROL REGISTER – READ/WRITE
CR0
CR1
CR2
CLOCK SELECTOR
OSCILLATOR
CONTROL BLOCK
CE
WR RD INT RESET A1 A0 V
DD
A1 A0
01
00
10
00
11
INTERRUPT CONTROL
POWER–ON
RESET
CONTROL SIGNALS
D7 D6 D5 D4 D3 D2 D1 D0
DATA
Figure 1. Block diagram
Philips Semiconductors Product data sheet
PCA9564Parallel bus to I
2
C-bus controller
2006 Sep 01
5
FUNCTIONAL DESCRIPTION
General
The PCA9564 acts as an interface device between standard
high-speed parallel buses and the serial I
2
C-bus. On the I
2
C-bus, it
can act either as master or slave. Bidirectional data transfer between
the I
2
C-bus and the parallel-bus microcontroller is carried out on a
byte-wise basis, using either an interrupt or polled handshake.
Internal Oscillator
The PCA9564 contains an internal 9 MHz oscillator which is used
for all I
2
C timing. The oscillator requires up to 500 µs to start-up
after ENSIO bit is set to “1”.
Registers
The PCA9564 contains four registers which are used to configure
the operation of the device as well as to send and receive serial data.
The registers are selected by setting pins A0 and A1 to the
appropriate logic levels before a read or write operation is executed.
CAUTION: Do not write to I
2
C registers while the I
2
C-bus is busy
and the SIO is in master or addressed slave mode.
REGISTER
NAME
REGISTER
FUNCTION
A1 A0
READ/
WRITE
DEFAULT
I2CSTA Status 0 0 R F8h
I2CTO Time-out 0 0 W FFh
I2CDAT Data 0 1 R/W 00h
I2CADR Own address 1 0 R/W 00h
I2CCON Control 1 1 R/W 00h
The Time-out Register, I2CTO: The time-out register is used to
determine the maximum time that SCL is allowed to be LOW before
the I
2
C state machine is reset.
When the I
2
C interface is operating, I2CTO is loaded in the time-out
counter at every SCL transition.
I2CTO TE
Time-out value
76 5 4 3 2 1 0
TO6 TO5 TO4 TO3 TO2 TO1 TO0
The most significant bit of I2CTO (TE) is used as a time-out
enable/disable. A “1” will enable the time-out function. The time-out
period = (I2CTO[6:0] + 1) × 113.7 µs. The time-out value may vary
some and is an approximate value.
The time-out register can be used in the following cases:
1.When the SIO, in the master mode, wants to send a START
condition and the SCL line is held LOW by some other device.
The SIO waits a time period equivalent to the time-out value for
the SCL to be released. In case it is not released, the SIO
concludes that there is a bus error, loads 90H in the I2CSTA
register, generates an interrupt signal and releases the SCL and
SDA lines. After the microcontroller reads the status register, it
needs to send an external reset in order to reset the SIO.
2.In the master mode, the time-out feature starts every time the SCL
goes LOW. If SCL stays LOW for a time period equal to or greater
than the time-out value, the SIO concludes there is a bus error
and behaves in the manner described above.
3.In case of a forced access to the I
2
C-bus. (See more details on
page 15.)
The Address Register, I2CADR: I2CADR is not affected by the
SIO hardware. The contents of this register are irrelevant when SIO
is in a master mode. In the slave modes, the seven most significant
bits must be loaded with the microcontroller’s own slave address.
I2CADR 0
7
65 43210
own slave address
BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1
The most significant bit corresponds to the first bit received from the
I
2
C-bus after a start condition. A logic 1 in I2CADR corresponds to a
HIGH level on the I
2
C-bus, and a logic 0 corresponds to a LOW
level on the bus. The least significant bit is not used but should be
programmed with a ‘0’.
The Data Register, I2CDAT: I2CDAT contains a byte of serial data
to be transmitted or a byte which has just been received. In master
mode, this includes the slave address that the master wants to send
out on the I
2
C-bus, with the most significant bit of the slave address
in the SD7 bit position and the Read/Write bit in the SD0 bit position.
The CPU can read from and write to this 8-bit register while it is not
in the process of shifting a byte. This occurs when SIO is in a
defined state and the serial interrupt flag is set. Data in I2CDAT
remains stable as long as SI is set. Whenever the SIO generates an
interrupt, the I2CDAT registers contain the data byte that was just
transferred on the I
2
C-bus.
NOTE: The I2CDAT register will capture the serial address as data
when addressed via the serial bus. Also, the data register will
continue to capture data from the serial bus during 38H so the
I2CDAT register will need to be reloaded when the bus becomes
free.
I2CDAT SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0
7
65 43210
SD7 - SD0:
Eight bits to be transmitted or just received. A logic 1 in I2CDAT
corresponds to a HIGH level on the I
2
C-bus, and a logic 0
corresponds to a LOW level on the bus.
The Control Register, I2CCON: The microcontroller can read from
and write to this 8-bit register. Two bits are affected by the SIO
hardware: the SI bit is set when a serial interrupt is requested, and
the STO bit is cleared when a STOP condition is present on the
I
2
C-bus. A write to the I2CCON register clears the SI bit and causes
the Serial Interrupt line to be de–asserted and the next clock pulse
on the SCL line to be generated. Since none of the registers should
be written to via the parallel interface once the Serial Interrupt line
has been de-asserted, all the other registers that need to be
modified should be written to before the content of the I2CCON
register is modified.
I2CCON ENSIO STA STO SI CR1 CR0
7
6543210
CR2
AA
ENSIO, THE SIO ENABLE BIT
ENSIO = “0”: When ENSIO is “0”, the SDA and SCL outputs are in a
high impedance state. SDA and SCL input signals are ignored, SIO
is in the “not addressed” slave state.
ENSIO = “1”: When ENSIO is “1”, SIO is enabled.
After the ENSIO bit is set, it takes 500 µs for the internal oscillator to
start up, therefore, the PCA9564 will enter either the master or the
slave mode after this time. ENSIO should not be used to temporarily
Philips Semiconductors Product data sheet
PCA9564Parallel bus to I
2
C-bus controller
2006 Sep 01
6
release the PCA9564 from the I
2
C-bus since, when ENSIO is reset,
the I
2
C-bus status is lost. The AA flag should be used instead (see
description of the AA flag in the following text).
In the following text, it is assumed that ENSIO = “1”.
STA, THE START FLAG
STA = “1”: When the STA bit is set to enter a master mode, the SIO
hardware checks the status of the I
2
C-bus and generates a START
condition if the bus is free. If the bus is not free, then SIO waits for a
STOP condition (which will free the bus) and generates a START
condition after the minimum buffer time (t
BUF
) has elapsed.
If STA is set while SIO is already in a master mode and one or more
bytes are transmitted or received, SIO transmits a repeated START
condition. STA may be set at any time. STA may also be set when
SIO is an addressed slave.
STA = “0”: When the STA bit is reset, no START condition or
repeated START condition will be generated.
STO, THE STOP FLAG
STO = “1”: When the STO bit is set while SIO is in a master mode, a
STOP condition is transmitted to the I
2
C-bus. When the STOP
condition is detected on the bus, the SIO hardware clears the STO
flag.
If the STA and STO bits are both set, then a STOP condition is
transmitted to the I
2
C-bus if SIO is in a master mode. SIO then
transmits a START condition.
STO = “0”: When the STO bit is reset, no STOP condition will be
generated.
SI, THE SERIAL INTERRUPT FLAG
SI = “1”: When the SI flag is set, then, if the ENSIO bit is also set, a
serial interrupt is requested. SI is set by hardware when one of 24 of
the 25 possible SIO states is entered. The only state that does not
cause SI to be set is state F8H, which indicates that no relevant
state information is available.
While SI is set, the LOW period of the serial clock on the SCL line is
stretched, and the serial transfer is suspended. A HIGH level on the
SCL line is unaffected by the serial interrupt flag. SI must be reset
by writing “0” to the SI bit. The SI bit cannot be set by the user.
SI = “0”: When the SI flag is reset, no serial interrupt is requested,
and there is no stretching of the serial clock on the SCL line.
AA, THE ASSERT ACKNOWLEDGE FLAG
AA = “1”: If the AA flag is set, an acknowledge (LOW level to SDA)
will be returned during the acknowledge clock pulse on the SCL line
when:
The “own slave address” has been received
A data byte has been received while SIO is in the master receiver
mode
A data byte has been received while SIO is in the addressed
slave receiver mode
AA = “0”: if the AA flag is reset, a not acknowledge (HIGH level to
SDA) will be returned during the acknowledge clock pulse on SCL
when:
A data byte has been received while SIO is in the master receiver
mode
A data byte has been received while SIO is in the addressed
slave receiver mode
“Own slave address” has been received
When SIO is in the addressed slave transmitter mode, state C8H
will be entered after the last serial is transmitted (see Figure 5).
When SI is cleared, enters the not addressed slave receiver mode,
and the SDA line remains at a HIGH level. In state C8H, the AA flag
can be set again for future address recognition.
When SIO is in the not addressed slave mode, its own slave
address is ignored. Consequently, no acknowledge is returned, and
a serial interrupt is not requested. Thus, SIO can be temporarily
released from the I
2
C-bus while the bus status is monitored. While
SIO is released from the bus, START and STOP conditions are
detected, and serial data is shifted in. Address recognition can be
resumed at any time by setting the AA flag.
THE CLOCK RATE BITS, CR2, CR1, AND CR0
Three bits determine the serial clock frequency when SIO is in
master mode. The various serial rates are shown in Table 1.
The clock frequencies only take the HIGH and LOW times into
consideration. The rise and fall time will cause the actual measured
frequency to be lower than expected.
The frequencies shown in Table 1 are unimportant when SIO is in a
slave mode. In the slave modes, SIO will automatically synchronize
with any clock frequency up to 400 kHz.
Table 1. Serial Clock Rates
CR2 CR1 CR0
SERIAL CLOCK FREQUENCY
(kHz)
0 0 0 330
0 0 1 288
0 1 0 217
0 1 1 146
1 0 0 88
1
1 0 1 59
1 1 0 44
1 1 1 36
NOTE:
1. The clock frequency values are approximate and may vary
with temperature, supply voltage, process, and SCL output
loading. If normal mode I
2
C parameters must be strictly followed
(SCL < 100kHz), it is recommended not to use
CR[2:0] = 100 (SCL = 88kHz) since the clock frequency might be
slightly higher than 100 kHz under certain temperature, voltage,
and process conditions and use CR[2:0] = 101 (SCL = 59 kHz)
instead.
The Status Register, I2CSTA: I2CSTA is an 8-bit read-only register.
The three least significant bits are always zero. The five most
significant bits contain the status code. There are 25 possible status
codes. When I2CSTA contains F8H, no relevant state information is
available and no serial interrupt is requested. All other I2CSTA
values correspond to defined SIO states. When each of these states
is entered, a serial interrupt is requested (SI = “1”).

PCA9564PW,118

Mfr. #:
Manufacturer:
NXP Semiconductors
Description:
I/O Controller Interface IC 400 KHZ I2C BUS
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union