概要
Quad SPIとは、通信機能の1つであり、Quad SPIフラッシュメモリ等のシリアルメモリにアクセスする機能である。
ユーザは、外部のシリアルメモリとマイコンのインタフェースの設計が容易になり、ピン数を節約することができる。
最近のマイコンの内蔵メモリは、以前と比較すると大容量になっているが、不足する場合は、外部メモリを使用する必要がある。
通常のメモリはアドレス線、データ線、信号線等を使用するため、複数のピンが必要になるが、
シリアルメモリを使用すると、シリアル通信でメモリにアクセスできるため、少ないピン数で接続できる。
Quad SPIを使用すると、容易にシリアルメモリと接続することができるため、ユーザは手軽に外部メモリを増設できる。
下図に、STM32F7シリーズに搭載されているQuad SPIの使用例を記載する。
メモリマップドモードを使用すると、シリアルメモリを通常のメモリのようにメモリマップに配置することができる。
2クロックで8ビットのデータ通信
ここでは、STM32F7シリーズに搭載されているQuad SPIを使用して記載する。
通常のSPIは、クロックと入力データ、出力データ、チップセレクト信号を使用して、1クロックごとに1ビットを送ってデータ通信を行う。
一方、Quad SPIはデータ線を4本使用して、1クロックで4ビットを1度に通信する。
下図に、通信プロトコル別のデータフォーマットを示す。
Quad SPIモジュールがサポートする通信プロトコルモードは、Single SPIモード、Dual SPIモード、Quad SPIモードの3種類である。
- Single SPIモード
- 信号名こそ異なるが、全2重3線式の通常のSPI通信のことである。
- 1クロックごとに1ビットを送るため、1バイト(8ビット)を送るには8クロック必要となる。
- Dual SPIモード
- 半2重通信である。
- 1クロックごとに2ビットを送るため、1バイトを送るには4クロック必要となる。
- データ部に注目すると、Dual SPIは半2重通信であるが、通常のSPIよりも2倍速い通信ができる。
- Quad SPIモード
- 半2重通信である。
- 1クロックごとに4ビットを送るため、1バイトを送るには2クロック必要となる。
- データ部に注目すると、Quad SPIは、信号線は4本必要であるが、通常のSPIよりも4倍速い通信ができる。
Quad SPI ICとの接続図は、"概要"セクションに示した通りである。
- CLK
- クロック出力
- BK1_IO0 / SO
- Dual / Quadモードの時は双方向のIO、Singleモードの時はシリアル出力信号
- BK1_IO1 / SI
- Dual / Quadモードの時は双方向のIO、Singleモードの時はシリアル入力信号
- BK1_IO2
- Quadモードの時は双方向のIO
- BK1_IO3
- Quadモードの時は双方向のIO
- BK1_nCS
- チップセレクト信号
通常のSPIの詳細については、マイコンの基礎 - EEPROMを参照すること。