STM32G4 – QUADSPI
Quad-SPIメモリ･インタフェース

1.0版

こんにちは、STM32 Quad-SPIメモリインタフェースのプレゼン
テーションへようこそ。このプレゼンテーションでは、マイクロコン
トローラと外部メモリの接続に広く使われているQuadSPIメモリイ
ンタフェースの特徴について説明します。

1シングル、もしくはデュアルQuad-SPIアクセス?

2

ピン数と性能による柔軟な選択• Quad-SPIは、シングルおよびデュアルの外部Flash操作をサポート（*）

Quad-SPI
レジスタ/コントロール

クロック管理• 4ビット、もしくは8ビットデータ･バス

QSPI FlashCLK
BK1_IO0/SO
BK1_IO1/SI
BK1_IO2

32ビット
AHBバス

BK1_IO3

FIFO

BK1_nCS

CLK
Q0/SI
Q1/SO
Q2/nWP
Q3/nHOLD
nCS

シフト
レジスタ

QSPI FlashCLK
BK2_IO0/SO
BK2_IO1/SI
BK2_IO2* : 部品番号に依存

Q0/SI
Q1/SO
Q2/nWP

BK2_IO3

Q3/nHOLD

BK2_nCSnCS

STM32G4マイクロコントローラ内に内蔵されたQuad-SPIメモリイ
ンタフェースは、通信インタフェースを提供し、マイクロコントロー
ラが外部のSPIおよびQuad-SPIメモリと通信可能になります。
Quad-SPIメモリインタフェースは、1つまたは2つの外部メモリへの接続をサポートします。つまり、メモリとマイクロコントローラの間で、4ビットまたは8ビットのデータバスを通じてデータを転送できます。接続に必要なピン数（シングルの場合は6、デュアル接
続では10）とデータ転送のパフォーマンス（1ビットの場合は4ビット、ダブル接続の場合は8ビット）の中から柔軟に選択できます。
2つの外部メモリは、専用チップセレクトで個別に管理できます。
また、同じチップセレクトを使用して、8ビットのデータメモリとして動作することもできます。この場合、2つのメモリ参照は同じである必要があります。

2

主な機能

3

• 3つの操作モード• インダイレクト• ステータスポーリング• メモリマップド• 最大133MHzの最適化された操作（*）• デュアルFlashモード（2つのFlashメモリにパラレル8ビットでアクセス）• シングル・データレート（SDR）とデュアル・データレート（DDR）をサポート* : VDDの範囲は2.7Vから3.6Vまで

STM32製品に搭載のQuad-SPIメモリインタフェースは3つの動作モードを提供し、デュアルデータレート動作に対応した外部メモリとの通信に最適化されています。これにより、シングル読出しサイクルで8ビットでのアクセスが可能となっています。また、シング
ルデータとデュアルデータレートの両方の動作をサポートします。

3

動作モード4

柔軟な動作モードでCPU負荷を軽減• インダイレクト・モード• すべての動作はレジスタにより実行（従来のSPI）• ステータス・ポーリング・モード• Flashメモリ・ステータス・レジスタの定時読出しおよびマッチ時の割込み生成• メモリ・マップド・モード• 外部Flashメモリを内部メモリのように読出し可能

Quad-SPIメモリインタフェースは3つのモードで動作します。
1.インダイレクトモードでは、従来のSPIインタフェースとして動作し、全ての動作はレジスタを通じて実行されます。
2.ステータスポーリングモードでは、Flashステータスレジスタが周期的に読み出され割込みが生成されます。
3.メモリマップドモードでは、外部Flashメモリを内部メモリのように読み出すことができます。

4

フレーム･フォーマット

5

シングル/デュアル/クワッドSPIシリアルFlashメモリとの互換性• QSPIコマンドには、最大5つの設定可能なフェーズが含まれる• 各フェーズは有効化または無効化が可能• 各フェーズの長さを設定可能• 各フェーズのライン数を設定可能
コマンド

nCS
SCLK
IO0
IO1
IO2
IO3

7654

3

アドレス

2

10

オルタネート ダミー

データ

40

40

40

40

40

40

5

1

5

1

5

1

5

1

5

1

5

1

62

62

62

62

62

62

73

73

73

73

73

73

A23-16

A15-8

A7-0

M7-0

バイト 1

バイト2

出力から入力へのIO切り替え

Quad-SPIメモリインタフェースは、フレームフォーマットの設定で高い柔軟性を発揮します。この柔軟性により、あらゆるシリアルFlashメモリに対応できます。ユーザは、5つのフェーズのそれぞれを有効または無効でき、また各フェーズの長さと各フェーズで使用されるライン数を設定できます。

5インダイレクト動作モード

6

従来のSPIインタフェース• 従来の通信IPと同じ使い方• データは、データ･レジスタへの書込みまたは読出しで転送• バイト数はデータ長レジスタに指定• データFIFOの管理• 割込みフラグ（転送完了フラグ）• DMAサポート• コマンドの開始• 命令が必要なときに命令を書込み• 命令とアドレスが必要なときにアドレスを書込み• データフェーズが必要なときにデータを書込み

Quad-SPIメモリインタフェースをインダイレクト動作モードで使用
すると、従来のSPIインタフェースのように動作します。転送デー
タは、FIFOでデータレジスタを経由します。データの交換は、ソフ
トウェア、Quad-SPIステータスレジスタの関連割込みフラグ、またはDMAコントローラによって動作します。
外部メモリにアクセスするための各コマンドは、命令を受けるコン
テキストに応じて、命令、アドレスまたはデータを書き込むと開始します。

6

ステータスポーリング動作モード

7

ソフトウェア･オーバーヘッドの削減• ステータスレジスタ･ポーリングの固有モード• プログラム可能なレジスタの長さ：8/16/24/32ビット• 指定した間隔での繰返し読出し動作• 応答をマスクし、一致した際にマッチ時に割込みを生成• プログラム可能なマスク（PSMKRレジスタ）• 一致レジスタ（PSMAR）で、マスクした値をビットごとに比較• 比較の結果は、ANDまたはORで処理される• 一致を検出すると割込みを生成します（一致フラグで停止）• 一致を検出すると自動的に停止

Quad-SPIインタフェースには、指示を受けずに外部Flashメモリのステータスレジスタを自律的にポーリングする固有のモードが実装されています。またQuad-SPIインタフェースは、定期的に外部Flashメモリ内のレジスタを読み出すように設定できます。応答
データをマスクして、評価対象のビットを選択できます。選択したビットは、マッチレジスタに保存した要求値と比較します。比較の結果は、2通りの方法で取り扱われます。1つは論理積（AND）
モードで、全ての選択ビットが一致したときに割込みを生成します。もう1つは論理和（OR）モードで、選択したいずれかのビットが一致したときに割込みを生成します。一致が発生すると、QuadSPIインタフェースは自動的に停止します。

7

メモリマップド･モード

8

プロジェクトへのメモリの拡張が容易
低電力管理• XiPをサポートするプリフェッチ• ウェイトステート付きの内部メモリとみなされる外部Flashメモリ• AHBアクセスにより、読出し動作が自動的に生成される• インダイレクト･モードと同様に、フレームとオペコードはIP設定時に定義される• nCSピンはローのまま保持、クロックは停止してQuad-SPIバスをストールさせ、必要に応じてシーケンシャル読出しが再開• タイムアウト･カウンタがnCSピンをハイにリリースして低電力を実現

Quad-SPIメモリインタフェースはメモリマップドモードも備えています。このモードで導入されるアプリケーションの主な利点は、この外部メモリをアクセスの観点から内部メモリと見なすことです。
本モードは読出し動作時にのみ適しています。外部Flashメモリ
は、その速度の遅さを相殺するためのウェイトステートを持つ内部メモリと見なせます。本モードで対応できるサイズは最大で256メガバイトです。
内部プリフェッチバッファは、コードを内部RAMにダウンロードすることなく、外部メモリから直接実行できるため、コードを最適化することができます。
本モードはまた、一部のFlashメモリで提供されているSIOO（SendInstruction Only Once = 初回命令再利用）モードにも対応しています。コントローラはこの機能により命令を1回送信するだけで、後続アクセスのための命令フェーズを省略することができます。

8

遅延データ・サンプリング

9

PCBレイアウトに起因する信号遅延対策として有益• サンプリング･クロックは、½クロック･サイクルだけシフト• PCB上での入力データ遅延伝搬時間を補正するため• SDRモードのみサポート• 出力データは、¼Quad-SPI出力クロック･サイクルでシフト可能*• DDRモードでのみサポート* : 部品番号に依存

遅延データサンプリングにより、PCBレイアウト最適化上の制約による信号の遅延を補正できます。これにより、SDRモード時のアプリケーションによるデータサンプリング時間が1/2クロックサイクルだけシフトできます。DDRモード時に出力データを1/4システムクロックサイクルだけシフトすることで、ホールド時間の制約を緩和できます。

9

割込みとDMA
割込みイベント

10

説明

タイムアウト

タイムアウトの発生時にセットされる

ステータス一致

自動ポーリング･モードで、マスクされた受信データがマッチレジスタの該当ビットと一致したときにセットされる

FIFO閾値FIFO閾値インダイレクト･モードで、FIFO閾値に達したときにセットされる

転送完了

インダイレクトモードで、プログラムされたデータ数が転送されたとき、またはモードに関係なく転送が中止されたときにセットされる

転送エラー

インダイレクト･モードで、無効なアドレスへのアクセスがあったときにセットされる• DMAリクエストは、インダイレクト･モードでFIFO閾値に達したときに生成される

Quad-SPIメモリインタフェースには5つの割込みソースがあります。タイムアウト、自動ポーリングモードでマスクされた受信デー
タがマッチレジスタの該当ビットと一致したときのステータスマッ
チ、FIFO閾値、転送完了、および転送エラーです。
DMAリクエストは、インダイレクトモードでFIFO閾値に達したときに生成されます。

10

低電力モード
モード

11

説明

RUN

有効SLEEP

有効 ペリフェラル割込みによって、デバイスはSLEEPモードを終了STOP

停止 ペリフェラル･レジスタの内容は保たれる

STANDBY

パワーダウン状態 ペリフェラルは、STANDBYモード終了後に再初期化する必要がある

Quad-SPIメモリインタフェースは、RUN、SLEEPモード時にアクティブとなります。Quad-SPIからの割込みにより、デバイスはSLEEPモードから復帰します。STOPモードでは、Quad-SPIは停止し、そのレジスタの内容は保持されます。STANDBYモードでは、
Quad-SPIの電源がオフになり、その後に再初期化する必要があります。

11アプリケーションの例

12• 接続可能でユーザ･インタフェースを持つウェアラブル･アプリケーション

BTモジュール

UART
FMC / SPI

シリアルFlash
加速度計

QuadSPI

SPI

ボタン

I/O

USBコネクタUSB

I2C

STM32G4

I2S

ディスプレイ
タッチパネル

オーディオ
コーデック

ウェアラブルアプリケーションには、高品質のユーザインタフェー
スと共に低電力管理機能が必要です。これは、STM32G4のQuad-SPIインタフェースを使用して、背景画像、高解像度アイコン、または複数の言語をサポートするフォントなどすべてを含むグラフィカルコンテンツを外部Flashメモリに保存することで実現できます。着信音用の追加のオーディオデータは、外部Flashメモリによって提供される大きなスペースの恩恵を受けることができます。このようなデバイスを駆動するための必要なピン数が少ないため、高度に最適化されたシステム統合が可能になります。

12

関連ペリフェラル

13• このペリフェラルに関連する以下のペリフェラル・トレーニングを参照してください。
• RCC（Quad-SPIクロック・コントロール、Quad-SPIイネーブル/リセット）• 割込み（Quad-SPI割込みマッピング）• DMA（Quad-SPIデータ転送）• GPIO（Quad-SPI入力/出力ピン）

詳しくは、RCC、割込み、DMA、およびGPIOに関するペリフェラル
トレーニングスライドを参照してください。

13

STM32シリーズ全体の比較

14

QUADSPI機能

STM32L4

STM32F0

STM32F1

STM32F2

STM32F3

STM32F4

STM32F7

STM32G4

インスタンス数

10000111

最高速度

48MHz

N/AN/A

N/A

N/A

90MHz

100MHz133MHz

デュアルFlash

N

N/A

N/A

N/A

N/A

Y

Y

Y

ソフトウェアの互換性

N/A

N/A

N/A

N/A

N/A

低レベルドライバー
ソフトウェアの互換性:互換、またほぼ互換
部分的互換性なし

Quad-SPIは一部のSTM32F4およびSTM32L4デバイスにも実装されていますが、STM32F4、STM32F7、STM32G4はデュアルFlashサポートと高速なI/O速度を提供します。

14

参照

15

• 詳細については、以下の資料を参照してください。:• アプリケーション・ノート AN4760: Quad-SPI (QSPI) interface on STM32 microcontrollers

詳しくは、AN4760 - Quad-SPI (QSPI) interface on STM32
microcontrollersを参照してください。

15