[AK4612]
(2)-2. READ命令
R/W bitが“1”の場合、AK4612はREAD動作を行います。指定されたアドレスのデータが出力された後、マス
タが停止条件を送らず確認応答を生成すると、サブアドレスが自動的にインクリメントされ、次のアドレス
のデータを読み出すことができます。アドレス“16H”のデータを読み出した後、さらに次のアドレスを読み
出す場合にはアドレス“00H”のデータが読み出されます。
AK4612はカレントアドレスリードとランダムリードの2つのREAD命令を持っています。
(2)-2-1. カレントアドレスリード
AK4612は内部にアドレスカウンタを持っており、カレントアドレスリードではこのカウンタで指定されたア
ドレスのデータを読み出します。内部のアドレスカウンタは最後にアクセスしたアドレスの次のアドレス値
を保持しています。例えば、最後にアクセス(READでもWRITEでも)したアドレスが“n”であり、その後カレ
ントアドレスリードを行った場合、アドレス“n+1”のデータが読み出されます。カレントアドレスリードで
は、AK4612はREAD命令のスレーブアドレス(R/W bit = “1”)の入力に対して確認応答を生成し、次のクロック
から内部のアドレスカウンタで指定されたデータを出力したのち内部カウンタを1つインクリメントします。
データが出力された後、マスタが確認応答を生成せず停止条件を送ると、READ動作は終了します。
S
S
T
O
P
T
A
R
T
R/W="1"
Slave
Address
S
Data(n)
Data(n+1)
Data(n+2)
Data(n+x)
P
SDA
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
A
C
K
A
C
K
A
C
K
A
C
K
A
C
K
N
A
C
K
Figure 54. カレントアドレスリード
(2)-2-2. ランダムアドレスリード
ランダムアドレスリードにより任意のアドレスのデータを読み出すことができます。ランダムアドレスリー
ドはREAD命令のスレーブアドレス(R/W bit = “1”)を入力する前に、ダミーのWRITE命令を入力する必要があ
ります。ランダムアドレスリードでは最初に開始条件を入力し、次にWRITE命令のスレーブアドレス(R/W bit
= “0”)、読み出すアドレスを順次入力します。AK4612がこのアドレス入力に対して確認応答を生成した後、
再送条件、READ命令のスレーブアドレス(R/W bit= “1”)を入力します。AK4612はこのスレーブアドレスの入
力に対して確認応答を生成し、指定されたアドレスのデータを出力し、内部アドレスカウンタを1つインクリ
メントします。データが出力された後、マスタが確認応答を生成せず停止条件を送ると、READ動作は終了
します。
S
T
A
R
T
S
T
A
R
T
S
T
O
P
R/W="0"
R/W="1"
Slave
Address
Sub
Address(n)
Slave
Address
S
S
Data(n)
Data(n+1)
Data(n+x)
P
SDA
M
A
S
T
E
R
M
A
S
T
E
R
M
A
S
T
E
R
M
A
S
T
E
R
A
C
K
A
C
K
A
C
K
A
C
K
A
C
K
A
C
K
N
A
C
K
Figure 55. ランダムアドレスリード
MS1039-J-01
2009/06
- 52 -