LM94 は、I2C ブロック読み出しをサポートしています。このトランザクションで発生するイベントのシーケンスは以下のとおりです。
- マスタはこのトランザクションを開始するために START を送信します。
- マスタは、7 ビットのスレーブ アドレスとそれに続く書き込みビット (下位) を送信します。
- スレーブは ACK をアサートします。
- マスタはレジスタ アドレスを送信し、スレーブは ACK をアサートします。
- マスタは繰り返しSTART を送信します。
- マスタは、7 ビットのスレーブ アドレスとそれに続く読み出しビット (上位) を送信します。
- スレーブは ACK をアサートします。
- マスタはデータ バイト 1 を受信し、ACK をアサートします。
- マスタはバイトを受信し続け、受信したバイトごとに ACK をアサートします。
- マスタは最後のバイトを受信します。
- マスタは NACK をアサートします。
- マスターは STOP を発行します。
1 | 2 | | 3 | 4 | | 5 | 6 | | 7 | 8 | | 9 | | ∼ | 10 | 11 | 12 |
S | スレーブ アドレス | W | A | レジスタ アドレス | A | S | スレーブ アドレス | R | A | データ バイト 1 | A | データ バイト 2 | A | ∼ | データ バイト N | /A | P |
注:
- 通常のアドレス空間外のアドレスが読み出されると、LM94 は 00h を返します。
- ブロック読み出しは、アドレス FFh から 00h へのラップアラウンドは行いません。
- 要求したバイト数以上をマスタがアクノリッジした場合、LM94 はマスタがバイトをアクノリッジしなくなるまで、データを供給し続けます。
- マスタがバイトをアクノリッジしないで、ブロック読み出しを早期に中止する場合、LM94 はバスから離れ、マスタが STOP 信号を発行できるようにします。