STM32H7 - FSMC
フレキシブル･メモリ･コントローラ
1.0版

こんにちは、STM32H7フレキシブルな静的メモリコントローラのプレゼンテーションへようこそ。
NOR Flash、NAND Flash、SRAM、PSRAMとSDRAMなどの外部メモリを接続するために使用されるインタフェースのすべての機能をカバーしています。

1

概要

2

• FMCは外部メモリをサポート
FMC
NOR / PSRAM
メモリ
コントローラInt.

• SDRAMメモリ･コントローラ
シェアード
シグナル

構成レジスタ

AXI

NOR
シグナル

• Flash/PSRAMコントローラは使用しない• NANDメモリ･コントローラ

NAND
メモリ
コントローラSDRAM
メモリ
コントローラ

NAND
シグナル

アプリケーション上のメリット• RAMの拡張

SDRAM
シグナル

• Flashメモリの拡張• パラレル･インタフェース(Intel 8080 / Motorola
6800)

STM32H7製品に内蔵されたFSMCコントローラは、3つのメモリ
コントローラ(NOR Flash/PSRAMコントローラ、SDRAMコント
ローラ、NANDメモリコントローラ)を通じて外部メモリのサポートをします。これにより、CPUはNORやNAND Flashメモリ、
PSRAM、SRAM、SDRAMなどの外部メモリと通信できます。このインタフェースは設定可能で、外部メモリまたは他のパラレル
インターフェイスと簡単に接続できます。
FMCコントローラの利点は、RAMやFlashメモリスペースの拡張だけでなく、Intel 8080およびMotorola 6800モードをサポートするほとんどのLCDコントローラとシームレスに接続する機能も含みます。このLCDパラレル・インタフェース機能により、組込みコ
ントローラを含むLCDモジュールや、専用のアクセラレータ機能を備えた外部コントローラを使用した高性能ソリューションを使用
して、コスト効率の高いグラフィックアプリケーションを簡単に構築できます。

2

主な機能

3

• 完全に独立しているバンク• 別々の外部メモリをサポートする4つのバンク• 各メモリバンクの独立したチップセレクト信号• 各メモリバンクの独立した設定• 柔軟な構成• FMC外部アクセス周波数はHCLK/2まで• 幅広いデバイスをサポートするプログラム可能なタイミング• 8ビット、16ビットまたは32ビットのデータバス• 外部非同期ウェイトコントロール• 拡張モード(書込みタイミングとは異なる読取りタイミングとプロトコル)• 同期デバイスへのバーストモード･アクセスをサポート(NOR FlashおよびPSRAM)

FMCコントローラは、独立した外部メモリをサポートする4つの独立したバンクを提供しています。各バンクには、独立したチップセ
レクト信号および独立した構成設定があります。
各バンクは設定可能な8-16ビットまたは32ビットのデータバスであるプログラム可能なタイミングを備えており、NOR Flashや
PSRAMなどの同期メモリに非同期またはバーストモードでメモリにアクセスできます。
同期メモリは、HCLKの最大周波数の1/2の速度でアクセスできます。

3

サポートされているデバイス

4

多種多様なインタフェースとメモリに対応• 静的メモリ･マップ･デバイス• 静的ランダム･アクセ･スメモリ(SRAM)• 読取り専用メモリ(ROM)• NOR / OneNAND Flashメモリ• PSRAM• NAND Flashメモリ• ECCハードウェアを搭載し、最大8キロバイトのデータを読書き可能• 3つの可能な割り込みソース(レベル、立上がりおよび立下りエッジ)• SDRAMメモリ• 同期DRAM(SDRAM)メモリマップ付きインタフェース

FMCコントローラは、さまざまなデバイスとメモリをサポートしています。
静的ランダムアクセスメモリ(SRAM)、読取り専用メモリ(ROM)、
NOR/OneNAND Flashメモリ、およびPSRAMなど、静的メモリ
マップに接続します。
FMCはNAND Flashメモリとのインタフェースも備えており、最大8キロバイトの読取り、または書込みデータのエラーコード修正(ECC)をサポートします。NAND FlashのReady/Busy信号で立上がりエッジ、立下がりエッジ、またはハイレベルが検出されたときに割込みを生成するように、3つの割込みソースを設定できます。
また、同期DRAM(SDRAM)メモリとのインタフェースにも使用します。

4サポートされているデバイス

5

多種多様なインタフェースとメモリに対応• パラレルLCDモジュール• Intel 8080やMotorola 6800

さらに、FMCはIntel 8080およびMotorola 6800モードをサポートするパラレルLCDモジュールと接続可能で、さまざまなLCDイン
タフェースに適応するのに十分な柔軟性を備えています。

5

FMCバンクメモリマッピング

6• 外部メモリは4つの固定サイズのバンクに分けられる• バンク1(4x64メガバイト)はNOR Flash、SRAM、PSRAM• バンク3(256メガバイト)はNAND Flash• バンク2はSDRAMバンクの再マップに使用、バンク4は予約済み• バンク5と6はSDRAM
0xDFFF FFFF
0xD000 0000
0xCFFF FFFF
0xC000 0000
0x9FFF FFFF
0x9000 0000
0x8FFF FFFF
0x8000 0000
0x7FFF FFFF
0x7000 0000
0x6FFF FFFF
0x6000 0000

バンク6256メガバイト
バンク5
256メガバイト

SDRAM

バンク4
予約済み
バンク3
256メガバイト

NAND Flash

バンク2

SDRAMバンクリマップ

バンク1
4x64メガバイト

NOR/PSRAM/SRAM

外部メモリ空間は、それぞれ256メガバイトの固定サイズバンクに分割されます。4つの外部メモリバンクがFSMC専用です。バ
ンク1はNOR/PSRAMコントローラに接続され、バンク3はNAND
コントローラに接続、バンク5と6はSDRAMに接続されています。
バンク2はSDRAMバンクのリマップに使用され、バンク4は予約済み領域です。

6

FMCバンク･アドレス･マッピング7

構成可能なアドレス･マッピング• FMCバンク･マッピングは、FMC_BCR1レジスタのBMAP[1:0]ビットで設定可能

0xDFFF FFFF
0xD000 0000
0xCFFF FFFF
0xC000 0000
0x9FFF FFFF
0x9000 0000
0x8FFF FFFF
0x8000 0000
0x7FFF FFFFSDRAMバンク2
256メガバイト
SDRAMバンク1
256メガバイト
バンク4
予約済み

NANDバンク
256メガバイト

0xDFFF FFFF
0xD000 0000
0xCFFF FFFF
0xC000 0000
0x9FFF FFFF
0x9000 0000
0x8FFF FFFF
0x8000 0000
0x7FFF FFFFSDRAMバンク10x7000 0000
0x6FFF FFFF
0x6000 0000

NOR/PSRAMバンク
4x64メガバイト

既定のマッピング

SDRAMバンク2
256メガバイト
NOR/PSRAMバンク
256メガバイト
バンク4
予約済み

NANDバンク
256メガバイト

0xDFFF FFFF
0xD000 0000
0xCFFF FFFF
0xC000 0000
0x9FFF FFFF
0x9000 0000
0x8FFF FFFF
0x8000 0000
0x7FFF FFFFSDRAMバンク10x7000 0000
0x6FFF FFFF
0x6000 0000

SDRAMバンク1
4x64メガバイト

NOR/PSRAMバンクとSDRAMバンク1スワップ

0x7000 0000
0x6FFF FFFF
0x6000 0000

SDRAMバンク2
256メガバイト
SDRAMバンク1
256メガバイト
バンク4
予約済み

NANDバンク
256メガバイト
SDRAMバンク2
NOR/PSRAM
4x64メガバイト

SDRAMバンク2リマップ

FMCバンクアドレスマッピングは、FMC_BCR1レジスタのBMAP[1:0]ビットで変更できます。
デフォルトのマッピング、SDRAMバンク1とNOR/PSRAMバ
ンクのスワップを可能にする2番目のマッピング、SDRAMバ
ンク2のリマッピングの3つのマッピングを構成することができ、2つの異なるアドレス範囲で同じSDRAMバンクにアクセスできます。

7

NOR / PSRAMアドレス･マッピング

8• バンク1は、4つの外部NOR/PSRAMメモリ(4本のチップセレクト)と接続する
ために、それぞれ64メガバイトで4バンクに分割され、サポート• NOR Flash: 8/16/32ビット同期/非同期、多重化または非多重化• SRAM/ROM: 8/16/32ビット• CRAM/PSRAM: 8/16/32ビット同期/非同期
0xDFFF FFFF
0xD000 0000
0xCFFF FFFF
0xC000 0000
0x9FFF FFFF
0x9000 0000
0x8FFF FFFF
0x8000 0000
0x7FFF FFFF
0x7000 0000
0x6FFF FFFF
0x6000 0000

バンク6256メガバイト
バンク5
256メガバイト
バンク2
予約済み
バンク3
256メガバイト
バンク2
予約済み
バンク1
4x64メガバイト

0x6FFF FFFF

0x6C00 0000
0x6BFF FFFF
0x6800 0000
0x67FF FFFF
0x6400 0000
0x63FF FFFF
0x6000 0000

バンク4 – チップセレクト4
64メガバイトバンク3 – チップセレクト3
64メガバイトバンク2 – チップセレクト2
64メガバイトバンク1 – チップセレクト1
64メガバイトバンク1は、最大4つのNOR Flashメモリ、またはPSRAMデ
バイスに対応するために使用されます。このバンクは、専用の4つのチップセレクトを持つ64メガバイトの4つの NORまたはPSRAMサブバンクに分割され、以下のメモリをサポートします。
多重化モードまたは非多重モードでの8ビット、または16ビッ
トの同期または非同期NOR Flash
8ビット、または16ビットの非同期SRAMおよびROM
8ビット、または16ビットの同期または非同期のPSRAMメモリ

8

NOR / PSRAMインタフェース信号

9• FMCは、適切な制御信号を生成• 非同期SRAMやROM

FMC• 8ビットFMC_NE[4:1]• 16ビット

FMC_NL(or NADV)• 32ビット

NOR / PSRAM
メモリ
コントローラ• PSRAM(CellularRAMとCosmoRAM)• 非同期モード• バーストモード• 多重化または非多重化• NOR FlashFMC_NBL[2:0]
FMC_CLKFMC_A[25:0]
FMC_D[31:0]

構成レジスタ

FMC_NOE

NAND
メモリ
コントローラFMC_NWE
FMC_NWAIT• 非同期モード• バーストモード• 多重化または非多重化

SDRAM
メモリ
コントローラFMCは、各バンクに一意のチップセレクト信号を出力し、外部デバイスへのアクセスを1度に1回のみ実行します。外部メ
モリはNOR PSRAMコントローラまたはNANDコントローラに接続され、アドレス、データ、制御信号を共有します。

9

NOR / PSRAMタイミング設定

10

柔軟なタイミング設定• FMC NOR / PSRAMコントローラは、バンクに接続されたメモリのタイミングを設定するために使用される• アドレス・セットアップ・フェーズ時間• アドレス・ホールド・フェーズ時間• データ・セットアップ・フェーズ時間• バス・ターンアラウンド・フェーズ時間• クロック分周比• データ遅延(同期バーストNOR Flashの場合)• アクセスモード

NOR PSRAMコントローラは、サポートされるメモリのさまざまなタイミング・パラメータの設定を可能にします。
・アドレス・セットアップ・フェーズ : 最初のアクセスフェーズの時
間・アドレス・ホールド・フェーズ : アクセスサイクルの中間フェーズの時間・データ・セットアップ・フェーズ : 第2アクセスフェーズの時間
・バス・ターンアラウンド・フェーズ : バスのターンアラウンド・フェーズの時間
・クロック分周比 : 1つのメモリクロックサイクル(CLK)内のAHBク
ロックサイクル(HCLK)の数
・データ遅延 : 最初のデータ転送前にメモリに発行されるクロック
サイクルの数・アクセスモード

10

NANDアドレス･マッピング

11• バンク3は、2つのメモリ･スペースを介してNAND Flashメモリをサポートするために使用される• 共通メモリ空間• 属性メモリ空間• 各メモリ領域は3つのサブセクションに分かれる• データセクション(64キロバイト) : データの読取りまたは書込みに使用• コマンドセクション(64キロバイト) : NAND Flashメモリにコマンドを送信するために使用• アドレスセクション(128キロバイト) : NAND Flashメモリアドレスを指定するために使用
0x8FFF FFFF
0x8C00 0000
0x8BFF FFFF

0x8FFF FFFF
0x8000 0000

バンク3
256メガバイト

0x8800 0000
0x87FF FFFF
0x8400 0000
0x83FF FFFF
0x8000 0000

0x8803 FFFF

予約済み
属性メモリ空間64メガバイト

0x8800 0000

予約済み

0x8003 FFFF

共通メモリ空間64メガバイト
0x8000 0000

アドレスセクション
128キロバイト
コマンドセクション
64キロバイト
データセクション
64キロバイトアドレスセクション
128キロバイト
コマンドセクション
64キロバイト
データセクション
64キロバイトバンク3は、NAND Flashメモリとのインタフェースに使用されます。これは、共通メモリ空間と属性メモリ空間の2つのメモリ空間に分かれています。両方のスペースは似ています。共通メモリ空間は、NAND Flashデバイスに最後のアドレスバイトを書き込む
場合を除き、すべてのNAND Flash読取りおよび書込みアクセス
用となります。これによりタイミングが異なる最後のアドレスバイトを書き込んで、特定のNAND Flashメモリに必要なプリウェイト機
能を実装できます。
各メモリ領域は、次の3つのセクションに分割されます。
・データセクション(64キロバイト) : NAND Flashメモリーからのデータの読取り、または書込みに使用します。
・コマンドセクション(64キロバイト) : NAND Flashメモリにコマンドを送信するために使用します。
・アドレスセクション(128キロバイト) : NAND Flashメモリのアドレスを指定するために使用します。

11

NANDインタフェース･シグナル

12• FMCはNANDメモリを駆動するために適切な信号を生成• NAND FlashFMC• 8ビット• 16ビット

FMC_A[25:0]

NOR / PSRAM
メモリ
コントローラFMC_D[15:0]
FMC_NOE
FMC_NWE
FMC_NWAIT

構成レジスタ

NAND
メモリ
コントローラFMC_NCE
FMC_INT

SDRAM
メモリ
コントローラFMCはNAND Flashメモリを駆動するために適切な信号を生成します。アドレス、データ、および制御信号はNOR/PSRAMコント
ローラと共有されます。
NAND Flashメモリデバイスのコマンドラッチイネーブル(CLE)、
およびアドレスラッチイネーブル(ALE)信号は、それぞれアドレス
ライン16とアドレスライン17に接続されたFMCコントローラからのアドレス信号によって駆動されます。
ALEはアドレスセクションへの書込み時にアクティブであり、コマンドセクションへの書込み時にはCLEがアクティブです。

12

NAND設定

13• FMC NANDメモリ･コントローラは、以下の機能をサポート• 読取り、および書込み操作のECCハードウェア･アクセラレーション(256バイトから8192バイト)• NANDバンクの3つの割込みソース• 立ち上がりエッジ• 立下りエッジ• 外部メモリのレベルReady/nBusy出力ピン• 待機機能の管理• コントローラは、新しいアクセスを開始する前に、NAND Flashメモリの準備が完了するまで待機(Ready/nBusyシグナルがハイ)• FMC NANDバンクのMPUメモリ属性は「デバイス」として設定する必要あり

FMC NANDメモリコントローラには、次の機能がサポートされています。
エラーコードの訂正 : ECCアルゴリズムは、NAND Flashメモリ
から読取り、または書込み256~8192バイトごとに1ビットエラー
訂正、および2ビットエラー検出を実行できます。これは、ハミング
符号化アルゴリズムに基づいています。
3つの割込みソースを有効にすると、NAND FlashメモリからのReady/Busy信号出力の立ち上がりエッジ、立ち下がりエッジ、またはレベルを検出できます。
待機機能の管理 : コントローラは、NAND Flashメモリの準備が整うまで待機してから、新しいアクセスを開始します。
FMC NANDバンクのMPUメモリ属性は、デバイスとして設定する必要があります。

13

NANDタイミング設定

14• 各メモリスペースに対して、一連のパラメータを設定可能• メモリセットアップ時間 : コマンドアサーションの前にアドレスをセットアップする時間• メモリウェイト : コマンドをアサートする時間• メモリホールド : コマンドのアサーション解除後にアドレスを保持する時間• データバス・ハイインピーダンス: アドレスからデータバスドライブまでの時間が有効

共通メモリと属性メモリの各スペースは、NAND Flashのコマ
ンド、アドレス書込み、およびデータの読取り/書込みアクセスに対して異なるタイミングで設定できます。
属性メモリ空間は、タイミングが以前のアクセスのタイミングと異なる必要がある場合に、最後のアドレス書き込みアクセスに使用されます。
Ready/Busyのマネージメント、それ以外の場合は、共通ス
ペースのみが必要です。
NAND Flashアクセスの異なるフェーズのHCLKサイクル数を定義するには、次の4つのパラメーターが使用されます。
• メモリセットアップ時間• メモリウェイト• メモリホールド• データバス・ハイインピーダンス

14

割込み
割込みイベント

説明

立上がりエッジ

FMC_INTピンで立上がりエッジが検出

立下りエッジ

FMC_INTピンで立下りエッジが検出

ハイレベル

FMC_INTピンでハイレベルが検出

NANDコントローラは、3つの割込みソースを提供します: NAND
FlashメモリからのReady/nBusy信号に接続されている場合のFSMC INTピンの立上がりエッジ、立下がりエッジ、およびハイレ
ベル検出。

15

SDRAMアドレス･マッピング

16• 最大512メガバイトの連続メモリが2つのバンクに分割、単一のデバイスとして見ることも可能• 各バンクは最大256メガバイトのメモリをアドレス可能
0xDFFF FFFF
0xD000 0000
0xCFFF FFFF
0xC000 0000
0x9FFF FFFF
0x9000 0000
0x8FFF FFFF
0x8000 0000
0x7FFF FFFF
0x7000 0000
0x6FFF FFFF
0x6000 0000

バンク6256メガバイト
バンク5
256メガバイト

0xDFFF FFFF

バンク2
予約済み

0xDC00 0000
0xCBFF FFFF

バンク3
256メガバイト

0xC000 0000

バンク6 – SDRAMバンク2
256メガバイト(4x16MBx32ビット)
バンク5 – SDRAMバンク1
256メガバイト(4x16MBx32ビット)

バンク2
予約済み
バンク1
4x64メガバイト

バンク5と6は、SDRAMメモリとのインタフェースに使用されます。
各バンクは最大256メガバイトのメモリをアドレス指定できます。
2つのバンクは2つのSDRAMデバイスとのインタフェースに使用することができます。

16

SDRAMインタフェース信号

17• FMCはSDRAMメモリを駆動するための適切な信号を生成• SDRAM• 8ビット

FMC• 16ビット• 32ビット
NOR / PSRAM
メモリ
コントローラFMC_A[12:0]
FMC_D[31:0]
FMC_BA[1:0]
FMC_NBL[2:0]構成レジスタ

NAND
メモリ
コントローラSDRAM
メモリ
コントローラFMC_SDCLKFMC_SDCKE[1:0]
FMC_SDNE[1:0]
FMC_SDNWE
FMC_NRASFMC_NCAS

FMCはSDRAMメモリを駆動するための適切な信号を生成します。アドレスとデータはNOR/PSRAMコントローラと共有されます。
バンクアドレス信号FMC BA0とFMC BA1はそれぞれFMC A14とFMC A15と共有されます。
SDRAMコントローラには専用信号があります。
- SDCLK : SDRAMクロック-

SDCKE0 : SDRAMバンク1クロック有効化
SDCKE1 : SDRAMバンク2クロック有効化
SDNE0 : SDRAMバンク1チップ有効化
SDNE1 : SDRAMバンク2チップ有効化
NRAS : Rowアドレスストローブ
NCAS : Columnアドレスストローブ
SDNWEN : 書込みイネーブル

17

SDRAM設定

18• 設定可能なRowおよびColumnサイズを持つ最大4つの内部バンク:• 最大13ビットのアドレスRow• 最大11ビットのアドレスColumn• 異なるSDRAMデバイス要件に対応するプログラマブル･タイミング･パラメータ• プログラム可能なリフレッシュレートによる自動更新操作• Rowとバンクの境界管理の自動管理• 設定可能なSDRAMクロック速度• AHB速度の半分(HCLK/2)• AHB速度の3分の1(HCLK/3)

FMCコントローラは、独立したSDRAMバンクを2つ提供し、独立した外部メモリをサポートします。各バンクには、独立したチップ
セレクトと独立した構成設定があります。
各SDRAMバンクは、最大4つの内部バンクを備えたメモリデバイ
スをサポートします。デバイスサイズは、アドレスRowの場合は最大13ビット、アドレスColumnに最大11ビットでプログラム可能です。
SDRAMはHCLKの最大周波数の半分でアクセスすることができます。
各バンクは、プログラム可能なタイミングと、設定可能な8ビット、16ビット、または32ビットのデータバスを備えています。

18

SDRAMマルチバンク･アクセス

19

マルチバンク･ピンポンアクセス• マルチバンク･ピンポンアクセスは、異なるバンクへの連続した書込みアクセスを実行可能• SDRAMコントローラは、各バンクのアクティブなRowを追跡• Rowが既にアクティブ化されている場合は、バンクのプリチャージとRowの有効化
を回避

マルチバンクピンポンアクセスは、異なるバンクへの連続した書
込みアクセスを実行することができます。
したがって、アクセスされたバンクでRowがすでにアクティブ化されている場合、バンクのプリチャージとRowの有効化は回避されます。

19

SDRAM最適化アクセス20

最適化された読取りアクセス• 6つの32ビットラインの深さのキャッシュ可能な読取りFIFO• 設定可能な読取りバーストにより、CASの遅延中に次の読取りアクセスを予測

SDRAMコントローラは、6つの32ビットラインの深度を持つキャッシュ可能な読取りFIFOを追加します。読取りFIFOは、読取りバーストが有効な場合に使用され、CASの待機時間中に次の読み取りアクセスを予測できます。

20

SDRAM低電力モード

21

省エネ機能
• 次の2つの低電力モードがサポート• セルフリフレッシュ･モード• セルフリフレッシュ･モードの場合、SDRAMは外部クロッキングなしでデータを保持• デバイスは、アプリケーションから要求された期間、セルフリフレッシュ･モードのままで使用可能• セルフリフレッシュ･モードは、次の場合に終了• SDRAMデバイスが選択されてる(読取り/書込み操作が要求された)• または、MODEビットが‘000’(通常モード)に設定されている• パワーダウン･モード• デバイスは、リフレッシュ期間を超えてパワーダウン･モードのままでいることは出来ない。SDRAMコン
トローラは、リフレッシュ操作を実行• パワーダウン･モードは、次の場合に終了する• MODEビットは‘000’(通常モード)に設定されてる

低消費電力システムのために、SDRAMコントローラは、セルフリフレッシュモードまたはパワーダウンモードの2つの低電力モードのいずれかに設定できます。
セルフリフレッシュモードの場合、SDRAMデバイスは外部クロッ
キングなしでデータを保持します。
デバイスは、アプリケーションから要求された期間、セルフリフ
レッシュモードのままで使用できます。
SDRAMデバイスが選択されている(読取り/書込み操作が要求された)か、MODEビットが‘000’(通常モード)に設定されている場合、デバイスはセルフリフレッシュモードを終了します。
このモードではリフレッシュ操作が実行されないため、デバイス
はリフレッシュ期間より長くパワーダウン状態に留まることはできません。その結果、SDRAMコントローラはリフレッシュ操作を実行します。
MODEビットが‘000’(通常モード)に設定されている場合、デバイ
スはパワーダウンモードを終了します。

21

SDRAMコマンド

22

サポートされているコマンド• コマンドは、FMC_SDCMRレジスタのターゲットバンクビット(CTB1およびCTB2)の設定を使用して、2つのバンクにコマンドの送付が使用可能
コマンド

MODEビット

通常モード

‘000’

クロック設定の有効化‘001’

PALL(“すべてのバンクのプリチャージ”)コマンド‘010’

オートリフレッシュ･コマンド‘011’

ロードモード･レジスタ‘100’

セルフリフレッシュ･コマンド‘101’

パワーダウン･コマンド‘110’

SDRAMコントローラは、SDRAMデバイスに異なるコマンドを発行することができます。
コマンドは、SDRAMデバイスを初期化するか、デバイスモードを切り替えるためにソフトウェアによって実行されます。
コマンドは、FMC_SDCMRレジスタのターゲットバンクビット
CTB1とCTB2の設定を使用して、2つのバンクに同時にコマンド送信が可能です。
サポートされているコマンドを表に示します。

22

SDRAM初期化プロシージャ

23• SDRAMメモリのパワーアップ初期化手順:
1. FMC_SDCRxレジスタでメモリデバイス機能を設定
2. FMC_SDTRxレジスタでメモリデバイスのタイミングを設定
3. FMC_SDCMRレジスタのMODEビットを‘001‘にセットし、クロック信号をメモリに出力
4. 所定の遅延期間を待つ(典型的な遅延は約100μs)
5. FMC_SDCMRレジスタでMODEビットを’010‘にセットし、「すべてバンクへプリチャージ」コマン
ドを発行
6. FMC_SDCMRレジスタのMODEビットを’011‘にセットし、連続したオートリフレッシュ･コマンドのNRFSフィールド番号をセット
7. FMC_SDCMRレジスタのMODEビットを’100’にセットし、「ロード・モード・レジスタ」コマンドを発行し、SDRAMデバイスをプログラムするためのMRDフィールドを発行.
• バースト長さ(BL)を‘1’に設定する必要があり、CASの待ち時間を選択する必要がある

8. FMC_SDRTRレジスタでのリフレッシュレートの構成

このスライドでは、ファームウェアで実装するSDRAMの初期化手順を示します。

23

低電力モード
モード

24

説明

RUN

アクティブ

SLEEP

アクティブ
ペリフェラルの割込みにより、デバイスはSLEEPモードを終了

STOP

停止
ペリフェラルレジスタの内容は保持

STANDBY

パワーダウン
ドメインおよびシステムのSTANDBYモードを終了した後、ペリフェラルの再初期化が必要

FMCは、RUNモードとSLEEPモードでアクティブです。FMC割込
みにより、デバイスがSLEEPモードを終了する可能性があります。
デバイスは、STOPモードとSTANDBYモードでは通信を実行できません。FMCコントローラを無効にするか、ドメインまたはシス
テムをSTOPモードまたはSTANDBYモードに切り替える前に、すべての転送が完了していることを確認することが重要です。
STOPモードまたはSTANDBYモードで外部のSDRAMメモリ
データを保持するには、STOPモードまたはSTANDBYモードに入る前に、外部SDRAMメモリデータをセルフリフレッシュモード
にします。

24

アプリケーション例25• 外部接続とユーザ・インタフェースを含むウェアラブル･アプリケーション
BTモジュール

UART
LTDC

Flash
加速度計

Quad-SPI、NOR Flash
SPI

ボタン

I/O

USBコネクタUSB

I2C

STM32H7

FMC

I2S

タッチパネル

SDRAM

オーディオコーデック• 外部メモリは、必要なオーディオとグラフィカル(アイコン、フォントなど)のデータを
ユーザ・インタフェースに格納可能

グラフィック・アプリケーションでは、低電力管理と高品質のユー
ザ・インタフェースが必要です。LCD-TFTコントローラやディスプ
レイはSTM32H7を使用して接続することが可能です。さらに、FMCまたはQuad-SPIインタフェースを使用して、背景画像、高解像度アイコン、複数言語をサポートするフォントなど、必要なすべてのグラフィック・コンテンツを含む外部のFlashメモリにアクセスできます。内蔵RAMは、LTDCコントローラのフレームバッファとして使用されるSDRAMメモリをFMCに接続することで拡張できます。
追加の着信音用などのオーディオデータは、外部Flashメモリによって提供される大きなメモリサイズの恩恵を受けることができます。

25

関連ペリフェラル

26• 以下はFMCコントローラに関連するペリフェラルのリストです。必要に応じてこれらのペリフェラル･トレーニングを参照してください。
• リセットとクロック･コントロール(RCC)• 割込み(NVIC)• 汎用I/O(GPIO)

FMCインタフェースに関連するペリフェラルの一覧を次に示します。
FMCコントローラを正しく設定して使用するには、これらのペリフェラルすべての関係を理解している必要があります。

26