12 control port operation, 1 i²c control, Figure 20. control port timing, i²c write – Cirrus Logic CS42L52 User Manual

Page 38

Advertising
background image

38

DS680F2

CS42L52

3/1/13

1.

Write 0x99 to register 0x00.

2.

Write 0xBA to register 0x3E.

3.

Write 0x80 to register 0x47.

4.

Write 1 to bit 7 in register 0x32.

5.

Write 00 to bit 7 in register 0x32.

6.

Write 0x00 to register 0x00.

4.12

Control Port Operation

The control port is used to access the registers, allowing the CODEC to be configured for the desired oper-
ational modes and formats. 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 operates using an I²C interface with the CODEC acting as a slave device.

4.12.1

I²C Control

SDA is a bidirectional data line. Data is clocked into and out of the device by the clock, SCL. The AD0 pin
sets the LSB of the chip address; ‘0’ when connected to DGND, ‘1’ when connected to VL. This pin may
be driven by a host controller or directly connected to VL or DGND. The AD0 pin state is sensed and the
LSB of the chip address is set upon the release of the RESET signal (a low-to-high transition).

The signal timings for a read and write cycle are shown in

Figure 20

and

Figure 21

. A Start condition is

defined as a falling transition of SDA while the clock is high. A Stop condition is defined as a rising tran-
sition of SDA while the clock is high. All other transitions of SDA occur while the clock is low. The first byte
sent to the CS42L52 after a Start condition consists of a 7-bit chip address field and a R/W bit (high for a
read, low for a write).

The upper 6 bits of the address field are fixed at 100101. To communicate with the CS42L52, the chip
address field, which is the first byte sent to the CS42L52, should match 100101 followed by the setting of
the AD0 pin. The eighth bit of the address is the R/W bit. If the operation is a write, the next byte is the
Memory Address Pointer (MAP), which selects the register to be read or written. If the operation is a read,
the contents of the register pointed to by the MAP will be output. Setting the auto-increment bit in MAP
allows successive reads or writes of consecutive registers. Each byte is separated by an acknowledge
bit. The ACK bit is output from the CS42L52 after each input byte is read and is input to the CS42L52 from
the microcontroller after each transmitted byte.

4 5 6 7

24 25

SCL

CHIP ADDRESS (WRITE)

MAP BYTE

DATA

DATA +1

START

ACK

STOP

ACK

ACK

ACK

1 0 0 1 0 1 AD0 0

SDA

INCR

6 5 4 3 2 1 0

7 6 1 0

7 6 1 0

7 6 1 0

0 1 2 3

8 9

12

16 17 18 19

10 11

13 14 15

27 28

26

DATA +n

Figure 20. Control Port Timing, I²C Write

Advertising