CS2000-CP
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19
24 25 26 27 28
SCL
SDA
DATA +1
DATA +n
CHIP ADDRESS (WRITE)
AD0
MAP BYTE
DATA
1
0
0
1
1
1
0
INCR
6
5
4
3
2
1
0
7
6
1
0
7
6
1
0
7
6
1
0
ACK
ACK
ACK
ACK
STOP
START
Figure 22. Control Port Timing, I²C Write
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
26 27 28
SCL
SDA
STOP
CHIP ADDRESS (WRITE)
AD0
MAP BYTE
CHIP ADDRESS (READ)
AD0
DATA
DATA +1 DATA + n
1
0
0
1
1
1
1
INCR
6
5
4
3
2
1
0
1
0
0
1
1
1
0
7
0
7
0
7
0
ACK
ACK
START
ACK
ACK
NO
ACK
START
STOP
Figure 23. Control Port Timing, I²C Aborted Write + Read
Since the read operation cannot set the MAP, an aborted write operation is used as a preamble. As shown
in Figure 22, the write operation is aborted after the acknowledge for the MAP byte by sending a stop con-
dition. The following pseudocode illustrates an aborted write operation followed by a read operation.
Send start condition.
Send 100111x0 (chip address & write operation).
Receive acknowledge bit.
Send MAP byte, auto increment off.
Receive acknowledge bit.
Send stop condition, aborting write.
Send start condition.
Send 100111x1(chip address & read operation).
Receive acknowledge bit.
Receive byte, contents of selected register.
Send acknowledge bit.
Send stop condition.
Setting the auto increment bit in the MAP allows successive reads or writes of consecutive registers. Each
byte is separated by an acknowledge bit.
26
DS761F1