DS1113F1
47
CS4399
4.12 Control Port Operation
For write operations, the data bytes following the MAP byte are written to the CS4399 register addresses pointed to by the
last received MAP address, plus however many autoincrements have occurred.
shows a write pattern with
autoincrementing.
Figure 4-29. Control Port Timing, I
2
C Writes with Autoincrement (8-bit Data Access)
For read operations, the contents of the register pointed to by the last received MAP address (plus however many
autoincrements have occurred if INCR was previously set) are output in the next byte.
shows a read pattern
following the write pattern in
. Notice how read addresses are based on the MAP bytes from
.
Figure 4-30. Control Port Timing, I
2
C Reads with Autoincrement (8-Bit Data Access)
To generate a read address not based on the last received MAP address, an aborted write operation can be used as a
preamble (see
). Here, a write operation is aborted (after the ACK for the control byte) by sending a Stop
condition.
Figure 4-31. Control Port Timing, I
2
C Reads with Preamble and Autoincrement (8-Bit Data Access)
SCL
CHIP ADDRESS
(WRITE)
MAP BYTE
High (23:16)
START
STOP
ACK
SDA
SDA
Source
Master
Master
Master
Pull-up
Slave
Slave
Pull-up
ACK
R/
W
=
0
Slave
AD
0
AD
1
4 5 6 7 8 9
17 18
0 1 2 3
7 6 5 4 3 2 1 0
ACK
34
MAP BYTE
Mid (15:8)
MAP BYTE
Low (7:0)
36
ACK
ACK
CONTROL
BYTE
7 6 5 4 3 2 1 0
37 38
35
IN
C
R
=
1
SI
Z
E
=
0
0
Empty
7 0
7 0
7 0
16
26 27
25
39 40 41 42 43 44
7 0
7 0
45
DATA
BYTE 1
DATA
BYTE N
Master
Master
Master
Master
M
Slave
Slave
Slave
Slave
MAP
ADDRESS
MAP
ADDRESS
+ (N–1)
ACK
ACK
Addr = 01100
SCL
CHIP ADDRESS
(READ)
START
SDA
SDA
Source
Master
Pull-up
Slave
Pull-up
ACK
R/
W
=
1
AD
0
AD
1
4 5 6 7 8 9
17
0 1 2 3
7 6 5 4 3 2 1 0
ACK
NACK
7 0
7 0
16
DATA
BYTE 1
DATA
BYTE N
M
M
Slave
STOP
MAP
ADDRESS
MAP
ADDRESS
+ (N–1 )
Addr = 01100
SCL
CHIP ADDRESS
(WRITE)
MAP BYTE
High (23:16)
START
STOP
ACK
SDA
SDA
Source
Master
Master
Master
Pull-up
Slave
Slave
Pull-up
ACK
R/W
=
0
Addr = 01100
AD
0
AD
1
4 5 6 7 8 9
17 18
0 1 2 3
7 6 5 4 3 2 1 0
ACK
34
MAP BYTE
Mid (15:8)
MAP BYTE
Low (7:0)
36
ACK
ACK
CONTROL
BYTE
7 6 5 4 3 2 1 0
37 38
35
IN
C
R
=
1
SI
Z
E
=
0
0
Empty
7 0
7 0
7 0
16
26 27
25
39 40 41 42 43 44
7 0
7 0
45
DATA
BYTE 1
DATA
BYTE N
Master
Master
Slave
Slave
Slave
M
Slave
START
R/
W
=
1
AD
0
AD
1
7 6 5 4 3 2 1 0
ACK
ACK
M
NACK
STOP
Master
4 5 6 7 8 9
0 1 2 3
16 17
Slave
CHIP ADDRESS
(READ)
MAP
ADDRESS
MAP
ADDRESS
+ (N-1)
Addr = 01100