このトランザクションは、LM94 からデータ ブロックを読み出すために使用します。このトランザクションで発生するイベントのシーケンスは以下のとおりです。
- マスタ デバイスは START 条件をアサートします。
- マスタは、7 ビットのスレーブ アドレスとそれに続く書き込みビット (下位) を送信します。
- アドレス指定されたスレーブ デバイスが ACK をアサートします。
- マスタはスレーブ デバイスにブロック読み出し (F1h) があることを通知するコマンド コードを送信し、スレーブは ACK をアサートします。
- マスタはこの書き込みのバイト数である 2 を送信し、スレーブは ACK をアサートします。
- マスタはブロック読み出しの開始レジスタ アドレスを送信し、スレーブは ACK をアサートします。
- マスターはブロック読み出しプロセス呼び出しのバイト数 (1~32) を送信し、スレーブは ACK をアサートします。
- マスタは 繰り返し START 条件をアサートします。
- マスタは、7 ビットのスレーブ アドレスとそれに続く読み出しビット (上位) を送信します。
- スレーブは ACK をアサートします。
- マスタは、これから受信するデータ バイトの数を通知するデータ バイトを受信します。このフィールドは、LM94 に送信されたバイト数によって要求されたバイト数を示しています。SMBus 仕様では、1 回のブロック読み出しで受信できるデータ バイト数は最大 32 バイトです。その後、マスタは ACK をアサートします。
- マスタはデータ バイト 1 を受信し、ACK をアサートします。
- マスタはデータ バイト 2 を受信し、ACK をアサートします。
- マスタはデータ バイト N-3 を受信し、それぞれに対して ACK をアサートします。
- マスタはデータ バイト N を受信し、NACK をアサートします。
- マスタは、STOP 条件をアサートしてトランザクションを終了します。
1 | 2 | | 3 | 4 | | 5 | | 6 | | 7 | | 8 | 9 | | 10 | ∼ |
S | スレーブ アドレス | W | A | ブロック 読み出し コマンド コード (F1h) | A | バイト数 (2h)
| A | 開始 レジスタ アドレス | A | バイト数 (1–20h) (N)
| A | S | スレーブ アドレス | R | A |
∼ | 11 | | 12 | | 13 | | 14 | 15 | 15 | 16 |
バイト数 (1–20h) (N)
| A | データ バイト 1 | A | データ バイト 2 | A | ∼ | データ バイト N | /A | P |
注:
- 通常のアドレス空間外のアドレスが読み出されると、LM94 は 00h を返します。
- ブロック読み出しは、アドレス FFh から 00h へのラップアラウンドは行いません。
- 要求したバイト数以上をマスタがアクノリッジした場合、LM94 はマスタがバイトをアクノリッジしなくなるまで、データを供給し続けます。
- マスタがバイトをアクノリッジしないで、ブロック読み出しを早期に中止する場合、LM94 はバスから離れ、マスタが STOP 信号を発行できるようにします。