メディア

Quad SPIって何?Q&Aで学ぶマイコン講座(20)(3/4 ページ)

» 2015年11月26日 11時30分 公開

通信フォーマット

 図2にはデータの通信フォーマットだけ記述しましたが、インストラクションやアドレスなどを含んだ通信フォーマット例を図3に示します。これはQuad SPIモードの読み出しコマンドの例です。

図3:通信フォーマット例 (クリックで拡大)

 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.

RSSフィード

公式SNS

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from AspenCore LLC.