Cirrus Logic CS485xx User Manual

Page 37

Advertising
background image

3-5

Copyright 2009 Cirrus Logic, Inc.

DS734UM7

Serial Control Port Configuration

CS485xx Hardware User’s Manual

The number of bytes that can be transmitted per transfer is unrestricted. Data is transferred with the most-
significant bit (MSB) first. The first byte is an address byte that is always sent by the master after a Start or

repeated Start condition. This byte must be a 7-bit I

2

C slave address + R/W bit. The 7-bit I

2

C address for the

CS485xx is 1000000b (0x80). The R/W bit is used to notify the slave if the current transaction is for the
master to write data to the slave (R/W = 0) or read data from the slave (R/W = 1).

After the master has sent the address byte, the master releases the SCP_SDA line. If the slave received the
address byte, it will drive the SCP_SDA line low to acknowledge (ACK) to the master that the byte was
received. The SCP_SDA line must remain stable and low during the high period of the next clock pulse.
When a slave doesn’t acknowledge the slave address, the data line must be left high by the slave (NACK).

Figure 3-4. I

2

C Address with ACK and NACK

For write operations, the R/W bit must be set to zero (R/W = 0, Address = 0x80). After the 8-bit data byte has
been clocked, the master will release the SCP_SDA line. If the slave received the byte correctly, it will drive
the SCP_SDA line low for the next bit clock to acknowledge (ACK) that the data was received. If the data
was not received correctly, the slave can communicate this by leaving the SCP_SDA line high (NACK).

For read operations, the R/W bit must be set to one (R/W = 1, Address = 0x81), then the master will read a
data byte from the slave. After the 8-bit data byte has been clocked, the master will release the SCP_SDA
line. If the master received the byte correctly, it will drive the SCP_SDA line low for the next bit clock to
acknowledge (ACK) that the data was received. If the data was not received correctly, the master can
communicate this by leaving the SCP_SDA line high (NACK). The protocol on the last byte, however, is
different. When the master receives the last byte, it signals the end of the data to the slave by allowing
SCP_SDA to float high (NACK).

Start

SCP_CLK

SCP_SDA

A[6]

A[5]

A[4]

A[3]

A[2]

A[1]

A[0]

R/W

ACK

M

S

Start

SCP_CLK

SCP_SDA

A[6]

A[5]

A[4]

A[3]

A[2]

A[1]

A[0]

R/W

NACK

M

S

M = Master Drives SDA
S = Slave Drives SDA

Advertising