![](http://datasheet.mmic.net.cn/Analog-Devices-Inc/AD8155ACPZ_datasheet_95928/AD8155ACPZ_25.png)
AD8155
Rev. 0 | Page 25 of 36
I2C INTERFACE DATA TRANSFERS: DATA READ
To read data from the AD8155 register set, a microcontroller or
any other I2C master must send the appropriate control signals
to the AD8155 slave device. The following steps must be taken,
where the signals are controlled by the I2C master, unless other-
wise specified. For a diagram of the procedure, see
Figure 42.
1.
Send a start condition (while holding the SCL line high,
pull the SDA line low).
2.
Send the AD8155 part address (seven bits) whose upper
four bits are the static value b1010 and whose lower three
bits are controlled by the I2C_A[2:0] input pins. This
transfer should be MSB first.
3.
Send the write indicator bit (0).
4.
Wait for the AD8155 to acknowledge the request.
5.
Send the register address (eight bits) from which data is to
be read. This transfer should be MSB first. The register
address is kept in memory in the AD8155 until the part is
reset or the register address is written over with the same
procedure (Step 1 to Step 6).
6.
Wait for the AD8155 to acknowledge the request.
7.
Send a repeated start condition (while holding the SCL line
high, pull the SDA line low).
8.
Send the AD8155 part address (seven bits) whose upper
four bits are the static value b1010 and whose lower three
bits are controlled by the I2C_A[2:0] input pins. This
transfer should be MSB first.
9.
Send the read indicator bit (1).
10. Wait for the AD8155 to acknowledge the request.
11. The AD8155 then serially transfers the data (eight bits)
held in the register indicated by the address set in Step 5.
12. Acknowledge the data.
13. Do one or more of the following:
a.
Send a stop condition (while holding the SCL line high,
pull the SDA line high) and release control of the bus.
b.
Send a repeated start condition (while holding the
SCL line high, pull the SDA line low) and continue
with Step 2 of the write procedure (see the
I2Cperform a write.
c.
Send a repeated start condition (while holding the
SCL line high, pull the SDA line low) and continue
with Step 2 of this procedure to perform a read from
another address.
d.
Send a repeated start condition (while holding the
SCL line high, pull the SDA line low) and continue
with Step 8 of this procedure to perform a read from
the same address.
In
Figure 42, the AD8155 read process is shown. The SCL signal is
shown along with a general read operation and a specific example.
In this example, the value 0x49 is read from Address 0x6D of
an AD8155 device with a 0x53 part address. The part address
is seven bits wide and is composed of the AD8155 static upper
four bits (b1010) and the pin-programmable lower three bits
(I2C_A[2:0]). The address pins are set to b011. In
Figure 42, the
corresponding step number is visible in the circle under the
waveform. The SCL line is driven by the I2C master and never
by the AD8155 slave. As for the SDA line, the data in the shaded
polygons is driven by the AD8155, whereas the data in the
nonshaded polygons is driven by the I2C master. The end phase
case shown is that of Step 13a.
It is important to note that the SDA line changes only when
the SCL line is low, except for the case of sending a start, stop,
or repeated start condition, as in Step 1, Step 7, and Step 13.
In
Figure 42, A is the same as ACK. Equally, Sr represents a
repeated start where the SDA line is brought high before SCL
is raised. SDA is then dropped while SCL is still high.
SCL
SD
b1010
A
A Sr
DATA
A
STOP
REGISTER ADDR
START
ADDR
[2:0]
ADDR
[2:0]
b1010
R/
W
A
R/
W
A
SDA
1
2
3
4
5
6
7
8
9
10
11
12
13a
0
82
62
-04
3
Figure 42. I2C Read Diagram