Datasheet

AD8192
Rev. 0 | Page 16 of 28
0
7050-109
START
FIXED PART
ADDR
REGISTER ADDR
FIXED PART
ADDR
DATA STOP
ACK
ADDR
ACK
R/W
ADDR
ACK NACK
R/W
SR
1 2 3 4 5 6 7 8 9 10 11 12 13
I2C_SCL
GENERAL CASE
I2C_SDA
EXAMPLE
I2C_SDA
Figure 29. I
2
C Read Procedure
READ PROCEDURE
To read data from the AD8192 register set, an I
2
C master (such
as a microcontroller) needs to send the appropriate control
signals to the AD8192 slave device. The signals are controlled
by the I
2
C master unless otherwise specified. For a diagram of
the procedure, see Figure 29. The steps for a read procedure are
as follows:
1.
Send a start condition (while holding the I2C_SCL line
high, pull the I2C_SDA line low).
2.
Send the AD8192 part address (seven bits). The upper six
bits of the AD8192 part address are the static value
[100100], and the LSB is set by Input Pin I2C_ADDR. This
transfer should be MSB first.
3.
Send the write indicator bit (0).
4.
Wait for the AD8192 to acknowledge the request.
5.
Send the register address (eight bits) from which data is to
be read. This transfer should be MSB first.
6.
Wait for the AD8192 to acknowledge the request.
7.
Send a repeated start condition (Sr) by holding the
I2C_SCL line high and pulling the I2C_SDA line low.
8.
Resend the AD8192 part address (seven bits) from Step 2.
The upper six bits of the AD8192 part address compose the
static value [100100]. The LSB is set by Input Pin I2C_ADDR.
This transfer should be MSB first.
9.
Send the read indicator bit (1).
10.
Wait for the AD8192 to acknowledge the request.
The AD8192 serially transfers the data (eight bits) held in
the register indicated by the address set in Step 5. This data
is sent MSB first.
11.
Capture the data from the AD8192.
12.
Do one of the following:
a.
Send a no acknowledge followed by a stop condition
(while holding the I2C_SCL line high, pull the SDA
line high) and release control of the bus to end the
transaction (shown in Figure 29).
b.
Send a no acknowledge followed by a repeated start
condition (while holding the I2C_SCL line high, pull
the I2C_SDA line low) and continue with Step 2 of the
write procedure (see the previous Write Procedure
section) to perform a write.
c.
Send a no acknowledge followed by a repeated start
condition (while holding the I2C_SCL line high, pull
the I2C_SDA line low) and continue with Step 2 of
this procedure to perform a read from another
address.
d.
Send a no acknowledge followed by a repeated start
condition (while holding the I2C_SCL line high, pull
the I2C_SDA line low) and continue with Step 8 of
this procedure to perform a read from the same
address.