マイコンの基礎 - Quad SPI

2021年2月2日 (火) 04:33時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == Quad SPIとは、通信機能の1つであり、Quad SPIフラッシュメモリ等のシリアルメモリにアクセスする機能である。<br> ユ…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

Quad SPIとは、通信機能の1つであり、Quad SPIフラッシュメモリ等のシリアルメモリにアクセスする機能である。

ユーザは、外部のシリアルメモリとマイコンのインタフェースの設計が容易になり、ピン数を節約することができる。

最近のマイコンの内蔵メモリは、以前と比較すると大容量になっているが、不足する場合は、外部メモリを使用する必要がある。

通常のメモリはアドレス線、データ線、信号線等を使用するため、複数のピンが必要になるが、
シリアルメモリを使用すると、シリアル通信でメモリにアクセスできるため、少ないピン数で接続できる。
Quad SPIを使用すると、容易にシリアルメモリと接続することができるため、ユーザは手軽に外部メモリを増設できる。

下図に、STM32F7シリーズに搭載されているQuad SPIの使用例を記載する。
メモリマップドモードを使用すると、シリアルメモリを通常のメモリのようにメモリマップに配置することができる。

 
図. Quad SPIの使用例(STM32F7シリーズ)




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を参照すること。