Quad SPIって何?:Q&Aで学ぶマイコン講座(20)(3/4 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、中級者の方からよく質問される「Quad SPIって何?」についてです。
通信フォーマット
図2にはデータの通信フォーマットだけ記述しましたが、インストラクションやアドレスなどを含んだ通信フォーマット例を図3に示します。これはQuad SPIモードの読み出しコマンドの例です。
Quad SPIは、コマンドを使ってフラッシュメモリと通信します。コマンドには5つのフェーズが含まれます。「インストラクションフェーズ」「アドレスフェーズ」「オルタネートバイトフェーズ」「ダミーサイクルフェーズ」「データフェーズ」です。これらのうち、いくつかのフェーズは省略することができますが、インストラクション・フェーズ、アドレス・フェーズのどちらか最低1つ、オルタネートバイトフェーズ、またはデータフェーズは必要です。
nCS端子がLowになるとコマンドの開始で、Highに戻るとコマンドの終了です。
インストラクションフェーズはフラッシュメモリのオペレーションを指示します。ユーザーがインストラクションコードをQuad SPIモジュール内の決められたレジスタに書き込めば、このフェーズで出力されます。スキップしてアドレスを最初から送ることもできます。
アドレスフェーズは、1〜4バイトで、オペレーションのアドレスを示すために送られます。これもスキップすることができます。
オルタネートバイトフェーズは、1〜4バイトで、一般に、オペレーションのモードをコントロールするために送られます。
ダミーサイクルフェーズは、空サイクルです。クロック周波数が高い場合、フラッシュメモリデータの受信/送信準備のためのサイクルです。
データは、その名の通りフラッシュメモリの書き込み/読み出しデータです。
動作モード
STM32F7のQuad SPIモジュールには3種類の動作モードがあります。「インダイレクトモード」「ステータスポーリングモード」「メモリマップドモード」です。インダイレクトモードは通常のSPIと同じモードです。すべての操作はレジスタを通して行われます。
ステータスポーリングモードは、フラッシュメモリのステータスレジスタを周期的に自動で読み出し、割り込みも自動で発生させるモードです。
メモリマップドモードは、外部メモリなのに、あたかもメモリマップに割り当てられた内蔵メモリのようにアクセスできるモードです(図1参照)
Copyright © ITmedia, Inc. All Rights Reserved.