ブロック書き込みの開始アドレスは、このトランザクションに組み込まれています。この動作では、次のようにマスタはデータ ブロックをスレーブに送信します。
- マスタ デバイスは START 条件をアサートします。
- マスタは、7 ビットのスレーブ アドレスとそれに続く書き込みビット (下位) を送信します。
- アドレス指定されたスレーブ デバイスは ACK をアサートします。
- マスタは、スレーブ デバイスにブロック書き込みがあることを通知するコマンド コードを送信します。LM94 のブロック書き込みのコマンド コードは F0h です。
- スレーブは ACK をアサートします。
- マスタは、スレーブ デバイスに送信するデータ バイト数 (N) を通知するバイトを送信します。SMBus 仕様では、1 回のブロック書き込みで送信できるデータ バイト数は最大 32 バイトです。
- スレーブ デバイスは ACK をアサートします。
- マスタは、ブロック書き込みの開始アドレスであるデータ バイト 1 を送信します。
- スレーブは各データ バイトの後に ACK をアサートします。
- マスタはデータ バイト 2 を送信します。
- スレーブ デバイスは ACK をアサートします。
- マスタはデータ バイトを継続的に送信し、スレーブは各バイトに対して ACK をアサートします。
- マスタは、STOP 条件をアサートしてトランザクションを終了します。
1 | 2 | | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | ∼ | 12 | | 13 |
S | スレーブ アドレス | W | A | コマンド F0h (ブロック 書き込み) | A | バイト 数 (N) | A | データ バイト 1 (開始 アドレス) | A | データ バイト 2 | A | ∼ | データ バイト N | A | P |
注:
- 通常のアドレス空間を超えるバイトへの書き込みは、LM94 によって確認されますが、無視されます。
- ブロック書き込みでは、アドレスが FFh から 00h に戻らず、アドレスは FFh のままになります。
- バイト数のフィールドは、LM94 によって無視されます。マスタ デバイスが送信するバイト数は多い場合も少ない場合もありますが、LM94 はそれらを受け入れます。
- SMBus 仕様では、ブロック書き込みが 32 データ バイトを超えないことを要求しています。この要件を満たすためには、実際のデータ バイトは 31 しか送信できないことになります (レジスタ アドレスは 1 バイトとしてカウントされます)。この要件を満たすかどうかは、LM94 には問題ではありません。