• No : 11321
  • 公開日時 : 2022/04/04 17:17
  • 印刷

【NXP:Kinetis】 Kinetis FlexBusは8ビット幅の外部デバイスに16ビットや32ビットでアクセスできますか。

FlexBusに8ビット幅のデバイスを接続します。
外部デバイスには、16ビットや32ビットデータがあるため、16ビットや32ビットで外部デバイスにアクセスしたいのですが、可能ですか。
カテゴリー : 

回答

FlexBusは、外部デバイスに対するアクセスが外部デバイスのビット幅より大きい場合、FlexBusが自動的に要求されたデータ分のアクセスを実施します。従って、8ビット幅の外部デバイスに対して、16ビットや32ビットでアクセスすることが可能です。
 
例えば、16ビットや32ビットで8ビット幅の外部デバイスにアクセスした場合、FlexBusは、16ビットアクセスの場合は8ビットを2回、32ビットアクセスの場合は8ビットアクセスを4回連続で実施します。
詳細は、リファレンスマニュアルのTransfer size and port size translationを参照ください。
 
この連続で実施するアクセスは、バーストアクセスとなり、CSCRnレジスタのBSTR(Burst-Read Enable)ビットとBSTW(Burst-Write Enable)の設定に依存し、外部デバイスへのアクセスタイミングが異なります。
BSTRやBSTWビットが0にセットされている場合、FlexBusは通常の8ビットアクセスが4回連続で実施します。
詳細は、リファレンスマニュアルの次のセクションを参照ください。
 ・32-bit-read burst-inhibited from 8-bit port (no wait states)
 ・32-bit-write burst-inhibited to 8-bit port (no wait states)
 
但しBSTRやBSTWビットが1にセットされている場合は、FB_CSnがアサートされた状態で8ビットアクセスを4回連続で実施しますが、アドレスは変化しません。詳細は、リファレンスマニュアルの次のセクションを参照ください。
 ・32-bit-Read burst from 8-Bit port 2-1-1-1 (no wait states)
 ・32-bit-Write burst to 8-Bit port 3-1-1-1 (no wait states)
 
FB_TAを使用してウェイトサイクルの挿入を制御している場合、適切なタイミングでFB_TAをアサートしてください。
アサートする時間は、必ず1クロックサイクル未満としてください。超えた場合は、次のアクセスをスキップすることがあります。