MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
マイコンの基礎 - Quad SPIのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
マイコンの基礎 - Quad SPI
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Quad SPIとは、通信機能の1つであり、Quad SPIフラッシュメモリ等のシリアルメモリにアクセスする機能である。<br> ユーザは、外部のシリアルメモリとマイコンのインタフェースの設計が容易になり、ピン数を節約することができる。<br> <br> 最近のマイコンの内蔵メモリは、以前と比較すると大容量になっているが、不足する場合は、外部メモリを使用する必要がある。<br> <br> 通常のメモリはアドレス線、データ線、信号線等を使用するため、複数のピンが必要になるが、<br> シリアルメモリを使用すると、シリアル通信でメモリにアクセスできるため、少ないピン数で接続できる。<br> Quad SPIを使用すると、容易にシリアルメモリと接続することができるため、ユーザは手軽に外部メモリを増設できる。<br> <br> 下図に、STM32F7シリーズに搭載されているQuad SPIの使用例を記載する。<br> メモリマップドモードを使用すると、シリアルメモリを通常のメモリのようにメモリマップに配置することができる。<br> [[ファイル:MCU Quad SPI 1.jpg|フレームなし|中央]] <center>図. Quad SPIの使用例(STM32F7シリーズ)</center><br> <br><br> == 2クロックで8ビットのデータ通信 == ここでは、STM32F7シリーズに搭載されているQuad SPIを使用して記載する。<br> <br> 通常のSPIは、クロックと入力データ、出力データ、チップセレクト信号を使用して、1クロックごとに1ビットを送ってデータ通信を行う。<br> 一方、Quad SPIはデータ線を4本使用して、1クロックで4ビットを1度に通信する。<br> <br> 下図に、通信プロトコル別のデータフォーマットを示す。<br> [[ファイル:MCU Quad SPI 2.jpg|フレームなし|中央]] <center>図. データフォーマット</center><br> <br> Quad SPIモジュールがサポートする通信プロトコルモードは、Single SPIモード、Dual SPIモード、Quad SPIモードの3種類である。<br> * Single SPIモード *: 信号名こそ異なるが、全2重3線式の通常のSPI通信のことである。 *: 1クロックごとに1ビットを送るため、1バイト(8ビット)を送るには8クロック必要となる。 *: <br> * Dual SPIモード *: 半2重通信である。 *: 1クロックごとに2ビットを送るため、1バイトを送るには4クロック必要となる。 *: データ部に注目すると、Dual SPIは半2重通信であるが、通常のSPIよりも2倍速い通信ができる。 *: <br> * Quad SPIモード *: 半2重通信である。 *: 1クロックごとに4ビットを送るため、1バイトを送るには2クロック必要となる。 *: データ部に注目すると、Quad SPIは、信号線は4本必要であるが、通常のSPIよりも4倍速い通信ができる。 <br> Quad SPI ICとの接続図は、"概要"セクションに示した通りである。<br> <br> * CLK *: クロック出力 * BK1_IO0 / SO *: <br> *: Dual / Quadモードの時は双方向のIO、Singleモードの時はシリアル出力信号 *: <br> * BK1_IO1 / SI *: <br> *: Dual / Quadモードの時は双方向のIO、Singleモードの時はシリアル入力信号 *: <br> * BK1_IO2 *: Quadモードの時は双方向のIO *: <br> * BK1_IO3 *: Quadモードの時は双方向のIO *: <br> * BK1_nCS *: チップセレクト信号 <br> 通常のSPIの詳細については、[[マイコンの基礎 - EEPROM]]を参照すること。<br> <br><br> == 通信フォーマット == 下図に、Quad SPIのインストラクションやアドレス等を含んだ通信フォーマット例を示す。<br> これは、Quad SPIモードの読み出しコマンドの例である。<br> [[ファイル:MCU Quad SPI 3.jpg|フレームなし|中央]] <center>図. 通信フォーマット例</center><br> <br> Quad SPIは、以下に示すコマンドを使用して、フラッシュメモリと通信する。<br> コマンドは5つのフェーズがある。<br> * インストラクションフェーズ *: フラッシュメモリのオペレーションを指示する。 *: ユーザがインストラクションコードをQuad SPIモジュール内の決められたレジスタに書き込めば、このフェーズで出力される。 *: このフェーズをスキップして、アドレスを最初から送ることもできる。 *: <br> * アドレスフェーズ *: 1~4バイトで、オペレーションのアドレスを示すために送られる。 *: このフェーズもスキップすることができる。 *: <br> * オルタネートバイトフェーズ *: 一般的に、1~4バイトで、オペレーションのモードをコントロールするために送られる。 *: <br> * ダミーサイクルフェーズ *: 空サイクルである。 *: クロック周波数が高い場合、フラッシュメモリデータの受信 / 送信準備のためのサイクルである。 *: <br> * データフェーズ *: 名前の通り、フラッシュメモリの書き込み / 読み出しデータである。 <br> 上記のフェーズの内、いくつかのフェーズは省略することができるが、<br> インストラクションフェーズまたはアドレスフェーズのいずれか1つ、オルタネートバイトフェーズまたはデータフェーズは必要となる。<br> <br> nCS端子がLowになる時にコマンドが開始されて、Highに戻る時にコマンドの終了となる。<br> <br><br> == 動作モード == STM32F7のQuad SPIモジュールには、以下の3種類の動作モードがある。<br> * インダイレクトモード *: インダイレクトモードは通常のSPIと同じモードである。 *: 全ての操作は、レジスタを通して行われる。 *: <br> * ステータスポーリングモード *: ステータスポーリングモードは、フラッシュメモリのステータスレジスタを周期的に自動で読み出し、割り込みも自動で発生させるモードである。 *: <br> * メモリマップドモード *: メモリマップドモードは、外部メモリをメモリマップに割り当てられた内蔵メモリのようにアクセスできるモードである。 *: ("概要"セクションの図を参照すること) <br><br> __FORCETOC__ [[カテゴリ:ARM]][[カテゴリ:AVR]][[カテゴリ:MSP430]][[カテゴリ:STM32]][[カテゴリ:H8]]
マイコンの基礎 - Quad SPI
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse