インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

B.6.1. Quad SPIフラッシュ・コントローラーのセットアップ

Quad SPIコントローラーのセットアップ手順を次に示します。

  1. 保留中の動作が完了するまで待機します。
  2. cfgレジスターのQuad SPI Enable (en) フィールドでQuad SPIコントローラーを無効にします。
  3. devrdレジスターのinstwidthフィールドを、間接書き込みまたは読み出し、および直接書き込みまたは読み出しに使用する命令タイプで更新します。
  4. devrdレジスターのMode Bit Enable (enmodebits) ビットが有効になっている場合は、Mode Bit (modebit) レジスターを更新します。
  5. devszレジスターを必要に応じて更新します。
    初期化後に、このレジスターの一部またはすべてが更新される場合があります。アドレスバイト数は、読み出しおよび書き込みの実行に必要な重要なコンフィグレーション設定です。書き込みを行うには、ページあたりのバイト数が必要です。デバイスブロックあたりのバイト数は、書き込み保護機能が使用されている場合にのみ必要です。
  6. Device Delay (delay) レジスターを更新します。
    このレジスターによりユーザーは、各フラッシュアクセス後のチップセレクトの駆動を調整することができます。各デバイスは、異なるタイミング要件を備えている場合があります。シリアルクロックの周波数が上がると、これらのタイミング要件はより重要になります。このレジスターで指定される数値は、qspi_ref_clkクロックの周期に基づいています。例えば、一部のデバイスでは、スレーブセレクトがデアサートされた後、それを再度アサートするまでに最低50ns時間が必要です。デバイスが100MHzで動作している場合は、クロック周期が10nsであるため、40nsが追加で必要になります。qspi_ref_clkクロックが400MHz (2.5ns周期) で動作している場合は、delayレジスターのClock Delay for Chip Select Deassert (nss) フィールドの値に少なくとも16を指定します。
  7. remapaddrレジスターを必要に応じて更新します。
    このレジスターは、ダイレクト・アクセス・モードにのみ影響します。
  8. 書き込み保護が必要な場合は、書き込み保護レジスター (wrprotlowwrprotuppwrprot) を設定し、有効にします。
  9. irqmaskレジスターを介して必要な割り込みを有効にします。
  10. cfgレジスターのbauddivフィールドを設定し、ターゲットデバイスに必要なクロック周波数を定義します。
  11. 自動入力される値を変更する必要がある場合は、Read Data Capture (rddatacap) レジスターを更新します。

    このレジスターは、読み出しデータのキャプチャーを遅延します。これは、デバイスからQuad SPIコントローラーへの読み出しデータパスが長く、デバイスのクロック周波数が高い場合に有効です。

  12. cfgレジスターのenフィールドでQuad SPIコントローラーを有効にします。