MCF8329A での I2C を介した書き込みトランザクションには、次のシーケンスが含まれます (図 7-53 を参照)。
- I2C START 条件。
- START の後に I2C ターゲット ID バイトが続きます。このバイトは、7 ビットのターゲット ID と 0b に設定された R/W ビットとで構成されます。黄色の枠で囲まれた ACK は、受信されたターゲット ID を MCF8329A が処理したことを示します。この ID が I2C ターゲット ID と一致していることを根拠に、このトランザクションは進められます。受信されたターゲット ID が MCF8329A の I2C ID と一致しない場合、そのトランザクションは無視され、MCF8329A は ACK を送信しません。
- ターゲット ID バイトの後に、24 ビットの制御ワードが 1 バイトずつ送信されます。書き込みトランザクションであるため、制御ワードのビット 23 は 0b に設定されます。ACK (青色の枠で囲まれた部分) は、「(制御ワードの) 前のバイトの受信が完了したため、次のバイトを送信してもよい」という、MCF8329A がコントローラに送信したアクノリッジに対応します。
- 24 ビットの制御ワードの後にデータ バイトが続きます。コントローラが送信するバイト数は制御ワードの DLEN フィールドで決まります。
- データ バイト送信時、LSB バイトが最初に送信されます。詳細については、セクション 7.6.2.4 を参照してください。
- 16 ビット / 32 ビット書き込み – 送信されたデータは、制御ワードに記載されたアドレスに書き込まれます。
- 64 ビット書き込み – 64 ビットは、2 つの連続した 32 ビット書き込みとして扱われます。制御ワードに記載されたアドレスは、Addr_1 と見なされます。Addr_2 は、Addr_1 を 0x2 ずつインクリメントすることで、MCF8329A によって内部的に計算されます。合計 8 データ バイトが送信されます。最初の 4 バイト (LSB ファーストで送信) は Addr_1 に書き込まれれ、次の 4 バイトは Addr_2 に書き込まれます。
- ACK (青色の枠で囲まれた部分) は、「前のバイトの受信が完了したため、次のバイトを送信してもよい」という、MCF8329A がコントローラに送信したアクノリッジに対応します。
- CRC が有効化されている場合、パケットの最後に CRC バイトが付きます。CRC は、パケット全体 (ターゲット ID + W ビット、制御ワード、データ バイト) に対して計算されます。MCF8329A は、CRC バイトを受信すると ACK を送信します。
- トランザクションを終了するための、コントローラからの I2C STOP 条件。