Pca9665 – NXP Semiconductors PCA9665 User Manual

Page 53

Advertising
background image

PCA9665_2

© NXP B.V. 2006. All rights reserved.

Product data sheet

Rev. 02 — 7 December 2006

53 of 91

NXP Semiconductors

PCA9665

Fm+ parallel bus to I

2

C-bus controller

Remark: Request to send or receive a number of bytes equal to 0 or higher than 68
(BC[6:0] = 000 0000 or BC[6:0] > 100 0100) will cause no data to be transferred and an
interrupt to be generated after writing to the I2CCON register. I2CSTA status register is
loaded with FCh that indicates that an invalid value was requested to be loaded in
I2CCOUNT.

8.7 Acknowledge management (I

2

C-bus addresses and data) in Byte and

Buffered modes

Data acknowledge/not acknowledge management can be controlled on a byte basis (Byte
mode) or on a sequence basis (Buffered mode). The PCA9665 can be programmed to
respond (ACK) or not (NACK) to two different I

2

C-bus addresses.

Table 43

shows how this

is performed based on the different control bits (AA, GC, LB and MODE) and the different
modes.

[1]

Assumption is that Data Received follows the address (as defined in column “Address”); valid for slave
mode only.

[2]

Unless the master sends a STOP command before.

Table 43.

Own slave address, General Call address, and Data acknowledge management

AA

GC

LB

MODE

Address

Data received

[1]

Master mode: the PCA9665 generates a START command and controls the I

2

C-bus

0

X

X

0

not applicable

data (each byte) = NACK

1

X

X

0

not applicable

data (each byte) = ACK

X

X

0

1

not applicable

all the bytes (BC[6:0] bytes) = ACK

X

X

1

1

not applicable

all the bytes except the last one
(BC[6:0] bytes

1) = ACK;

last byte = NACK

Slave mode: I

2

C-bus message starting with the PCA9665’s Own Slave address

0

X

X

0

Own address = NACK

data (each byte) = NACK

1

X

X

0

Own address = ACK

data (each byte) = ACK

0

X

0

1

Own address = NACK

all the bytes (

BC[6:0] bytes) = ACK

0

X

1

1

Own address = NACK

all the bytes except the last one
(BC[6:0] bytes - 1) = ACK; last
byte = NACK

[2]

1

X

0

1

Own address = ACK

all the bytes (

BC[6:0] bytes) = ACK

1

X

1

1

Own address = ACK

all the bytes except the last one
(BC[6:0] bytes - 1) = ACK;
last byte = NACK

[2]

Slave mode: I

2

C-bus message starting with the General Call address

X

0

X

0

GC address = NACK

data (each byte) = NACK

0

1

X

0

GC address = ACK

data (each byte) = NACK

1

1

X

0

GC address = ACK

data (each byte) = ACK

X

0

X

1

GC address = NACK

data (each byte) = NACK

X

1

0

1

GC address = ACK

all the bytes (

BC[6:0] bytes) = ACK

X

1

1

1

GC address = ACK

all the bytes except the last one
(BC[6:0] bytes - 1) = ACK;
last byte = NACK

[2]

Advertising