Control port interface, 1 map auto increment, 2 i²c mode – Cirrus Logic CS4385A User Manual

Page 32: 1 i²c write, 2 i²c read, 1 map auto increment 5.2 i²c mode, 1 i²c write 5.2.2 i²c read

Advertising
background image

32

DS837F2

CS4385A

5. CONTROL PORT INTERFACE

The control port is used to load all the internal register settings in order to operate in Software Mode (see

Section

7. “Register Description” on page 37

). The operation of the control port may be completely asynchronous with the

audio sample rate. However, to avoid potential interference problems, the control port pins should remain static if
no operation is required.

The control port operates in one of two modes: I²C or SPI.

5.1

MAP Auto Increment

The device has Memory Address Point (MAP) auto-increment capability enabled by the INCR bit (also the
MSB) of the MAP. If INCR is set to 0, MAP will stay constant for successive I²C writes or reads and SPI
writes. If INCR is set to 1, MAP will auto-increment after each byte is written, allowing block reads or writes
of successive registers.

5.2

I²C Mode

In the I²C Mode, data is clocked into and out of the bi-directional serial control data line, SDA, by the serial
control port clock, SCL (see

Figure 25

for the clock to data relationship). There is no CS pin. The AD0 pin

enables the user to alter the chip address (001100[AD0][R/W]) and should be tied to VLC or GND, as re-
quired, before powering up the device. If the device ever detects a high-to-low transition on the AD0/CS pin
after power-up, SPI Mode will be selected.

5.2.1

I²C Write

To write to the device, follow the procedure below while adhering to the control port Switching Specifica-
tions in

Switching Characteristics - Control Port - I²C Format

.

1. Initiate a START condition to the I²C bus followed by the address byte. The upper 6 bits must be

001100. The seventh bit must match the setting of the AD0 pin, and the eighth must be 0. The eighth
bit of the address byte is the R/W bit.

2. Wait for an acknowledge (ACK) from the device; then write to the memory address pointer, MAP. This

byte points to the register to be written.

3. Wait for an acknowledge (ACK) from the device; then write the desired data to the register pointed to

by the MAP.

4. If the INCR bit (see

Section 5.1

) is set to 1, repeat the previous step until all the desired registers are

written; then initiate a STOP condition to the bus.

5. If the INCR bit is set to 0 and further I²C writes to other registers are desired, it is necessary to initiate

a repeated START condition and follow the procedure detailed from step 1. If no further writes to other
registers are desired, initiate a STOP condition to the bus.

5.2.2

I²C Read

To read from the device, follow the procedure below while adhering to the control port Switching Specifi-
cations.

1. Initiate a START condition to the I²C bus followed by the address byte. The upper 6 bits must be

001100. The seventh bit must match the setting of the AD0 pin, and the eighth must be 1. The eighth
bit of the address byte is the R/W bit.

Advertising