Control port description and timing, 1 spi mode, Figure 22. control port timing in spi mode – Cirrus Logic CS8420 User Manual

Page 30: Figure 22.control port timing in spi mode

Advertising
background image

30

DS245F4

CS8420

9.

CONTROL PORT DESCRIPTION AND TIMING

The control port is used to access the registers, allowing the CS8420 to be configured for the desired operational
modes and formats. In addition, Channel Status and User data may be read and written via the control port. The
operation of the control port may be completely asynchronous with respect to the audio sample rates. However, to
avoid potential interference problems, the control port pins should remain static if no operation is required.

The control port has two modes: SPI and I²C, with the CS8420 acting as a slave device. SPI mode is selected if
there is a high-to-low transition on the AD0/CS pin after the RST pin has been brought high. I²C mode is selected
by connecting the AD0/CS pin to VD+ or DGND, thereby permanently selecting the desired AD0 bit address state.

9.1

SPI Mode

In SPI mode, CS is the CS8420 chip select signal. CCLK is the control port bit clock (input into the CS8420
from the microcontroller), CDIN is the input data line from the microcontroller, CDOUT is the output data line
to the microcontroller. Data is clocked in on the rising edge of CCLK and out on the falling edge.

Figure 22

shows the operation of the control port in SPI mode. To write to a register, bring CS low. The first

7 bits on CDIN form the chip address and must be 0010000b. The eighth bit is a read/write indicator (R/W),
which should be low to write. The next 8 bits form the Memory Address Pointer (MAP), which is set to the
address of the register that is to be updated. The next 8 bits are the data which will be placed into the register
designated by the MAP. During writes, the CDOUT output stays in the Hi-Z state. It may be externally pulled
high or low with a 47 k

Ω resistor, if desired.

There is a MAP auto-increment capability, enabled by the INCR bit in the MAP register. If INCR is a zero,
then the MAP will stay constant for successive read or writes. If INCR is set to a 1, then the MAP will auto-
increment after each byte is read or written, allowing block reads or writes of successive registers.

To read a register, the MAP has to be set to the correct address by executing a partial write cycle which
finishes (CS high) immediately after the MAP byte. The MAP auto-increment bit (INCR) may be set or not,
as desired. To begin a read, bring CS low, send out the chip address and set the read/write bit (R/W) high.
The next falling edge of CCLK will clock out the MSB of the addressed register (CDOUT will leave the high-
impedance state). If the MAP auto-increment bit is set to 1, the data for successive registers will appear
consecutively.

M A P

MSB

LSB

DATA

b y te 1

b y te n

R/W

R/W

A D D R E S S

C H IP

ADDRESS

C H IP

C D IN

C C L K

CS

C D O U T

MSB

LSB MSB

LSB

0010000

0010000

MAP = Memory Address Pointer, 8 bits, MSB first

High Impedance

Figure 22. Control Port Timing in SPI Mode

Advertising