[AK4675]
MS0963-E-00
2008/05
- 138 -
(2)-2. READ Operations
Set the R/W bit = “1” for the READ operation of the AK4675. After transmission of data, the master can read the next
address’s data by generating an acknowledge instead of terminating the write cycle after the receipt of the first data word.
After receiving each data packet the internal 7-bit address counter is incremented by one, and the next data is
automatically taken into the next address. In case of CODEC & SRC blocks, if the address exceeds 5AH prior to
generating stop condition, the address counter will “roll over” to 00H and the data of 00H will be read out. In case of
HP/SPK-Amp blocks, if the address exceeds 12H prior to generating stop condition, the address counter will “roll over”
to 00H and the data of 00H will be read out.
The AK4675 supports two basic read operations: CURRENT ADDRESS READ and RANDOM ADDRESS READ.
(2)-2-1. CURRENT ADDRESS READ (except for 10bit SAR ADC Data)
The AK4675 contains an internal address counter that maintains the address of the last word accessed, incremented by
one. Therefore, if the last access (either a read or write) were to address “n”, the next CURRENT READ operation would
access data from the address “n+1”. After receipt of the slave address with R/W bit set to “1”, the AK4675 generates an
acknowledge, transmits 1-byte of data to the address set by the internal address counter and increments the internal
address counter by 1. If the master does not generate an acknowledge to the data but instead generates stop condition, the
AK4675 ceases transmission.
SDA
Slave
Address
S
S
T
A
R
T
R/W="1"
A
C
K
A
C
K
Data(n+1)
A
C
K
Data(n+2)
A
C
K
A
C
K
Data(n+x)
N
A
C
K
P
S
T
O
P
Data(n)
M
A
S
T
E
R
M
A
S
T
E
R
M
A
S
T
E
R
M
A
S
T
E
R
M
A
S
T
E
R
Figure 108. CURRENT ADDRESS READ
(2)-2-2. RANDOM ADDRESS READ
The random read operation allows the master to access any memory location at random. Prior to issuing the slave address
with the R/W bit set to “1”, the master must first perform “dummy” write operation. The master issues start request, a
slave address (R/W bit = “0”) and then the register address to read. After the register address is acknowledged, the master
immediately reissues the start request and the slave address with the R/W bit set to “1”. The AK4675 then generates an
acknowledge, 1 byte of data and increments the internal address counter by 1. If the master does not generate an
acknowledge to the data but instead generates a stop condition, the AK4675 ceases transmission.
SDA
Slave
Address
S
S
T
A
R
T
R/W="0"
A
C
K
A
C
K
A
C
K
Data(n)
A
C
K
Data(n+x)
A
C
K
P
S
T
O
P
Sub
Address(n)
S
Slave
Address
R/W="1"
S
T
A
R
T
Data(n+1)
A
C
K
N
A
C
K
M
A
S
T
E
R
M
A
S
T
E
R
M
A
S
T
E
R
M
A
S
T
E
R
Figure 109. RANDOM ADDRESS READ
When SAR ADC data is read, register data of Addr=5BH should be read by RANDOM ADDRESS READ, then stop
condition should be input.
SDA
Slave
Address
S
S
T
A
R
T
R/W="0"
A
C
K
A
C
K
A
C
K
Data(D9-2)
A
C
K
Data(D1-0)
P
S
T
O
P
Sub
Address(5BH)
S
Slave
Address
R/W="1"
S
T
A
R
T
N
A
C
K
M
A
S
T
E
R
M
A
S
T
E
R
Figure 110. RANDOM ADDRESS READ of SAR ADC Data