beautypg.com

6 control port operation, 1 map auto increment, 2 i²c mode – Cirrus Logic CS4349 User Manual

Page 25: 1 i²c write, 2 i²c read, 1 map auto increment 6.2 i²c mode, 1 i²c write 6.2.2 i²c read

background image

DS782F2

25

CS4349

6 CONTROL PORT OPERATION

The control port is used to load all the internal register settings (see

”Register Description” on page 29

). The oper-

ation 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 can operate in I²C or SPI mode.

6.1

MAP Auto Increment

The device has a MAP (memory address pointer) 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 consecutive writes or reads. If INCR is
set to 1, MAP will auto increment after each byte is read or written, allowing block reads or writes of
consecutive registers.

6.2

I²C Mode

In 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 18

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

enable the user to alter the chip address (10010[AD1][AD0][R/W]) and should be tied to VLC or GND as
required before powering-up the device. SPI Mode will be selected if the device ever detects a high-to-low
transition on the AD0/CS pin after power-up.

6.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” on page 14

.

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

10010. The sixth and seventh bit must match the settings of the AD1 and AD0 pins respectively, 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 part, 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 part, then write the desired data to the register pointed to by

the MAP.

4. If the INCR bit (see

Section 6.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.

6.2.2

I²C Read

To read from the device, follow the procedure below while adhering to the control port switching specifi-
cations in

”Switching Characteristics - Control Port - I²C Format” on page 14

.

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

10010. The sixth and seventh bits must match the setting of the AD1 and AD0 pins, respectively, and
the eighth must be 1. The eighth bit of the address byte is the R/W bit.

2. After transmitting an acknowledge (ACK), the device will then transmit the contents of the register

pointed to by the MAP. The MAP register will contain the address of the last register written to the