1-STM32F4xx中文参考手册2(DMA2D+LTDC+SAI+FMC)

更新时间:2024-04-01 13:55:29 阅读: 评论:0

2024年4月1日发(作者:我最敬佩的老师)

1-STM32F4xx中文参考手册2(DMA2D+LTDC+SAI+FMC)

RM0090可变存储控制器 (FMC)

37 可变存储控制器 (FMC)

可变存储控制器 (FMC) 包括以下三个存储控制器:

NOR/PSRAM 存储控制器

NAND/PC 卡存储控制器

同步 DRAM (SDRAM/Mobile LPSDR SDRAM) 控制器

本节内容仅适用于 STM32F42xxx 和 STM32F43xxx。

37.1 FMC 主要特性

FMC 功能块可连接同步/异步静态存储器、SDRAM 存储器和 16 位 PC 存储卡。其主要用途有:

将 AHB 数据通信事务转换为适当的外部器件协议

满足外部存储器器件的访问时间要求

所有外部存储器共享地址、数据和控制信号, 但有各自的片选信号。FMC 一次只能访问一

个外部器件。

FMC 控制器的主要特性如下:

连接静态存储器映射的器件:

静态随机访问存储器 (SRAM)

NOR Flash/OneNAND Flash

PSRAM(4 个存储区域)

16 位 PC 卡兼容设备

–两个带有硬件 ECC 的 NAND Flash 存储区域,可检查多达 8 KB 的数据

连接同步 DRAM (SDRAM/Mobile LPSDR SDRAM) 存储器

支持突发模式,能够更快速地访问同步器件(如 NOR Flash、PSRAM 和 SDRAM)

可编程连续时钟输出以支持异步和同步访问

具有 8 位、16 位或 32 位宽的数据总线

每个存储区域有独立的片选控制

每个存储区域可独立配置

写使能和字节通道选择输出,可配合 PSRAM、SRAM 和 SDRAM 器件使用。

外部异步等待控制

16 x 33 位深度写数据 FIFO

16 x 30 位深度写地址 FIFO

SDRAM 控制器具有可缓存的 6 x 32 位深度读 FIFO(6 x 14 位地址标记)。

文档 ID 018909 第 7 版1579/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

FMC 内嵌两个写 FIFO:一个 16x33 位深度写数据 FIFO 和一个 16x30 位深度写地址 FIFO。

写数据 FIFO 存储要写入存储器的 AHB 数据(最多 32 位)以及 AHB 传输的一个控制位

(突发或非连续模式)

写地址 FIFO 存储 AHB 地址(最多 28 位)以及 AHB 数据大小(最多 2 位)。在突发模

式下工作时,将仅存储起始地址,但越过页边界时除外(适用于 PSRAM 和 SDRAM)。

在此情况下,AHB 突发传输将分成两个 FIFO 条目。

启动时,必须通过用户应用程序对 FMC 引脚进行配置。应用程序未使用的 FMC I/O 引脚可

用于其它用途。

定义外部器件类型和其特性的 FMC 寄存器通常在启动时进行设置,并且在下次上电或复位

前保持不变。但是,可随时更改设置。

37.2 框图

FMC 包含五个主要模块:

AHB 接口(包括 FMC 配置寄存器)

NOR Flash/PSRAM/SRAM 控制器

NAND Flash/PC 卡控制器

SDRAM 控制器

外部器件接口

框图如

454 所示。

1580/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

图 454. FMC 框图

󰠄󰀃19,&󰀃ⱘ󰀃)0&󰀃Ё󱮁

可变存储控制器 (FMC)

)0&B1/˄󱟪󰀃1$'9˅

󱴹㞾󱯊䩳󱥻󰠊󰰼

125󰀒365$0

󱄬󰙼󰰼󱥻󰠊󰰼

)0&B&/.

125󰀒365$0

󰖵󰧋

+&/.

)0&B1%/>󰀖󰀝󰀓@

)0&B$>󰀕󰀘󰀝󰀓@

)0&B'>󰀖󰀔󰀝󰀓@

䜡㕂󱆘󱄬󰰼

)0&B1(>󰀗󰀝󰀔@

)0&B12(

)0&B1:(

)0

&B1:$,7

)0&B1&(>󰀖󰀝󰀕@

)0&B,17>󰀖󰀝󰀕@

65$0󰀒365$0󰀒6'5$0󰀃󰀃

󰝅ѿ󰖵󰧋

󰝅ѿ󰖵󰧋

125󰀒365$0󰀒65$0󰀃󰀃

󰝅ѿ󰖵󰧋

1$1'

󰖵󰧋

1$1'󰀒3&󰀃󰤵

󱄬󰙼󰰼󱥻󰠊󰰼

)0&B,175

)0&B1&(󰀗B󰀔

)0&B1&(󰀗B󰀕

)0&B1,25'

)0&B1,2:5

)0&B15(*

)0&B&'

3&󰀃󰤵

󰖵󰧋

6'5$0

󱥻󰠊󰰼

)0&B6'&/.

)0&B6'1:(

)0&B6'&.(>󰀔󰀝󰀓@

)0&B6'1(>󰀔󰀝󰀓@

)0&B15$6

)0&B1&$6

6'5$0

󰖵󰧋

06󰀖󰀓󰀗󰀗󰀖9󰀗

文档 ID 018909 第 7 版1581/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

37.3 AHB 接口

CPU 和其它 AHB 总线主设备可通过该 AHB 从设备接口访问外部存储器。

AHB 事务会转换为外部器件协议。尤其是当所选外部存储器的宽度为 16 位或 8 位时,AHB 中

的 32 位宽事务将被划分成多个连续的 16 或 8 位访问。连续访问之间,FMC 片选 (FMC_NEx)

不会翻转。

出现以下条件时,FMC 将产生 AHB 错误:

读取或写入未使能的 FMC 存储区域。

在 FMC_BCRx 寄存器中的 FACCEN 位复位时读取或写入 NOR Flash 存储区域。

在输入引脚 FMC_CD (Card Prence Detection) 为低电平时读取或写入 PC 卡存储

区域。

向写保护的 SDRAM 存储区域(SDRAM_SDCRx 寄存器中 WP 位置 1)写入时。

违反 SDRAM 地址范围(访问保留的地址范围)时。

如果为带 FPU CPU 的 Cortex

®

-M4,则会生成硬性故障 (Hard fault) 中断。

如果为 DMA 控制器,则会生成 DMA 传输错误,并会自动禁止相应的 DMA 通道。

此 AHB 错误的影响具体取决于尝试进行读写访问的 AHB 主设备:

AHB 时钟 (HCLK) 是 FMC 的参考时钟。

37.3.1 支持的存储器和事务

通用事务规则

所请求的 AHB 事务传输数据宽度可以是 8、16 或 32 位,但访问的外部器件具有固定的数据

宽度。这可能会导致不一致的数据宽度。

因此,必须遵循一些简单的事务规则:

AHB 事务数据宽度和存储器数据宽度相等

在此情况下没有任何问题。

AHB 事务数据宽度大于存储器宽度:

在此情况下,FMC 会将 AHB 事务分为多个较小的连续存储器访问,以符合外部数据宽

度。连续访问之间,FMC 片选 (FMC_NEx) 不会翻转。

AHB 事务数据宽度小于存储器宽度:

传送可能一致,也可能不一致,具体取决于外部器件的类型:

–访问具有字节选择功能的器件(SRAM、ROM、PSRAM 和 SDRAM)

FMC 允许读/写事务并通过其字节选择通道 BL[3:0] 访问恰当的数据。

通过 NBL[3:0] 寻址要写入的字节。

读取所有存储器字节(NBL[3:0] 在读取事务期间保持为低电平),并丢弃无用的

字节。

–访问不具有字节选择功能的器件(16 位 NOR 和 NAND Flash)。

当请求对 16 位宽的 Flash 存储器进行字节访问时会发生此情形。由于无法在字节

模式下访问器件(只能向 Flash 读取或写入 16 位字),因此允许读事务和写事务

(控制器会读取全部 16 位存储器字,但只使用所需字节)。

1582/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

配置寄存器

可通过一组寄存器配置 FMC。有关 NOR Flash/PSRAM 控制寄存器的详细说明,请参见

37.5.6

。有关 NAND Flash/PC 卡寄存器的详细说明,请参见

37.6.8

,有关 SDRAM

控制寄存器的详细说明,请参见

37.7.5

37.4 外部器件地址映射

从 FMC 的角度,外部存储器被划分为 6 个固定大小的存储区域,每个存储区域的大小为

256 MB(请参见

455):

存储区域 1 可连接多达 4 个 NOR Flash 或 PSRAM 器件。此存储区域被划分为如下 4 个

NOR/PSRAM 子区域,带 4 个专用片选信号:

存储区域 1 NOR/PSRAM 1

存储区域 1 NOR/PSRAM 2

存储区域 1 NOR/PSRAM 3

存储区域 1 NOR/PSRAM 4

存储区域 2 和 3 用于连接 NAND Flash 器件(每个存储区域一个器件)

存储区域 4 用于连接 PC 卡

存储区域 5 和 6 用于连接 SDRAM 器件(每个存储区域一个器件)

对于每个存储区域,所要使用的存储器类型可由用户应用程序通过配置寄存器配置。

文档 ID 018909 第 7 版1583/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

图 455. FMC 存储区域

󰴄󰴔

󰀓[󰀙󰀓󰀓󰀓󰀃󰀓󰀓󰀓󰀓

󱄬󰙼󰤎󱬃󱣕ⱘ󱄬󰙼󰰼㉏󰵟

RM0090

%DQN󰀃󰀔

󰀗󰀃[󰀃󰀙󰀗󰀃0%

󰀓[󰀙)))󰀃))))

󰀓[󰀚󰀓󰀓󰀓󰀃󰀓󰀓󰀓󰀓

125󰀒365$0󰀒65$0

%DQN󰀃󰀕

󰀗󰀃[󰀃󰀙󰀗󰀃0%

󰀓[󰀚)))󰀃))))

󰀓[󰀛󰀓󰀓󰀓󰀃󰀓󰀓󰀓󰀓

1$1'󰀃)ODVK

%DQN󰀃󰀖

󰀗󰀃[󰀃󰀙󰀗󰀃0%

󰀓[󰀛)))󰀃))))

󰀓[󰀜󰀓󰀓󰀓󰀃󰀓󰀓󰀓󰀓

%DQN󰀃󰀗

󰀗󰀃[󰀃󰀙󰀗󰀃0%

󰀓[󰀜)))󰀃))))

󰀓[&󰀓󰀓󰀓󰀃󰀓󰀓󰀓󰀓

3&󰀃󰤵

6'5$0󰀃%DQN󰀃󰀔

󰀗󰀃[󰀃󰀙󰀗󰀃0%

󰀓[&)))󰀃))))

󰀓['󰀓󰀓󰀓󰀃󰀓󰀓󰀓󰀓

6'5$0

6'5$0󰀃%DQN󰀃󰀕

󰀗󰀃[󰀃󰀙󰀗󰀃0%

󰀓[')))󰀃))))

06󰀖󰀓󰀗󰀗󰀗9󰀕

37.4.1 NOR/PSRAM 地址映射

HADDR[27:26] 位用于从

247 中所示的四个存储区域之中选择其中一个存储区域。

表 247. NOR/PSRAM 存储区域选择

HADDR[27:26]

(1)

00

01

10

11

选择的存储区域

存储区域 1 NOR/PSRAM 1

存储区域 1 NOR/PSRAM 2

存储区域 1 NOR/PSRAM 3

存储区域 1 NOR/PSRAM 4

是 AHB 内部地址线,但也会参与对外部存储器的寻址。

1584/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

HADDR[25:0] 位包含外部存储器地址。由于 HADDR 为字节地址,而存储器按字寻址,所以

根据存储器数据宽度不同,实际向存储器发送的地址也将有所不同,如下表所示。

表 248. NOR/PSRAM 外部存储器地址

存储器宽度

(1)

8 位

16 位

32 位

向存储器发出的数据地址

HADDR[25:0]

HADDR[25:1] >> 1

HADDR[25:2] >> 2

最大存储器容量(位)

64 MB x 8 = 512 Mb

64 MB/2 x 16 = 512 Mb

64 MB/4 x 32 = 512 Mb

1.如果外部存储器的宽度为 16 位,FMC 将使用内部的 HADDR[25:1] 地址来作为对外部存储器的寻址地址

FMC_A[24:0]。如果存储器宽度为 32 位,FMC 将使用内部的 HADDR[25:2] 地址进行外部寻址。

无论外部存储器的宽度是多少,FMC_A[0] 都应连接到外部存储器地址 A[0]。

NOR Flash/PSRAM 的回卷支持

不支持同步存储器的回绕突发模式。存储器必须按未定义长度的线性突发模式进行配置。

37.4.2 NAND Flash/PC 卡地址映射

在此情况下可使用三个存储区域,且每个存储区域分为几个存储器区域,如

249 所示。

表 249. NAND/PC 卡存储映射和时序寄存器

起始地址结束地址

0x9FFF FFFF

0x9BFF FFFF

存储区域 4 - PC 卡

0x93FF FFFF

FMC 存储区域存储空间

I/O

特性区

通用区

时序寄存器

FMC_PIO4 (0xB0)

FMC_PATT4 (0xAC)

FMC_PMEM4 (0xA8)

FMC_PATT3 (0x8C)

FMC_PMEM3 (0x88)

FMC_PATT2 (0x6C)

FMC_PMEM2 (0x68)

0x9C00 0000

0x9800 0000

0x9000 0000

0x8800 0000

0x8000 0000

0x7800 0000

0x7000 0000

0x8BFF FFFF

存储区域 3 - NAND

特性区

0x83FF FFFF

Flash

通用区

0x7BFF FFFF

存储区域 2 - NAND

特性区

0x73FF FFFF

Flash

通用区

对于 NAND Flash 存储器,通用区和特性区存储空间分为三个部分,均位于低位 256 KB 中

(见下面的

250):

数据区域(通用/特性存储空间中的第一个 64 KB)

命令区域(通用/特性存储空间中的第二个 64 KB)

地址区域(通用/特性存储空间中的下一个 128 KB)

表 250. NAND 存储区域选择

部分名称

地址区域

命令区域

数据区域

HADDR[17:16]

地址范围

1X 0x020000-0x03FFFF

01 0x010000-0x01FFFF

00 0x000000-0x0FFFF

文档 ID 018909 第 7 版1585/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

应用程序软件使用这 3 个区域来访问 NAND Flash 存储器:

RM0090

向 NAND Flash 发送命令,软件必须向命令区域中的任意存储单元写入命令值。

指定读取或写入的 NAND Flash 地址,软件必须向地址区域中的任意存储单元写入地址

值。由于地址的长度可以是 4 或 5 个字节(具体取决于实际存储器大小),要指定完整

的地址,需要对地址区域执行多个连续写入操作。

读取或写入数据,软件将从数据区域中的任意存储单元读取数据,或者向其中写入数据。

由于 NAND Flash 存储器会自动递增地址,所以在访问连续存储器位置时,无需递增数据区

域的地址。

37.4.3 SDRAM 地址映射

HADDR[28] 位(内部 AHB 地址线 28)用于选择两个存储区域之一,如

251 所示。

表 251. SDRAM 存储区域选择

HADDR[28]

0

1

选择的存储区域

SDRAM Bank1

SDRAM Bank2

控制寄存器

FMC_SDCR1

FMC_SDCR2

时序寄存器

FMC_SDTR1

FMC_SDTR2

下表显示了 13 位行和 11 位列配置的 SDRAM 映射。

表 252. SDRAM 地址映射

存储器宽度

(1)

8 位

16 位

32 位

内部存储区域

HADDR[25:24]

HADDR[26:25]

HADDR[27:26]

行地址

HADDR[23:11]

HADDR[24:12]

HADDR[25:13]

列地址

(2)

HADDR[10:0]

HADDR[11:1]

HADDR[12:2]

最大存储器容量

(MB)

64 MB:

4 x 8K x 2K

128 MB:

4 x 8K x 2K x 2

256 MB:

4 x 8K x 2K x 4

1.连接 16 位存储器时,FMC 内部使用 HADDR[11:1] 内部 AHB 地址线进行外部寻址。连接 32 位存储器时,

FMC 内部使用 HADDR[12:2] 地址线进行外部寻址。无论外部存储器的宽度是多少,FMC_A[0] 都必须连接

到外部存储器地址 A[0]。

2.不支持 AutoPrecharge。FMC_A[10] 必须连接到外部存储器地址 A[10],但始终为“低电平”。

HADDR[27:0] 位将转换为外部 SDRAM 地址,具体取决于 SDRAM 控制器配置:

数据大小:8、16 或 32 位

行大小:11、12 或 13 位

列大小:8、9、10 或 11 位

内部存储区域数量:两个或四个内部存储区域

253 到

255 显示了不同 SDRAM 控制器配置的 SDRAM 地址映射。

1586/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

表 253. 8 位数据总线宽度时的 SDRAM 地址映射

(1)(2)

HADDR(AHB 内部地址线)

行大小配置

可变存储控制器 (FMC)

27262524232221241312111

Res.

Res.

Res.

Res.

Res.

Res.

Res.

Res.

Res.

Res.

Res.

Res.

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Bank

[1:0]

Row[10:0]

Row[10:0]

Row[10:0]

Row[10:0]

Row[11:0]

Row[11:0]

Row[11:0]

Row[11:0]

Row[12:0]

Row[12:0]

Row[12:0]

Row[12:0]

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

11 位行大小

配置

12 位行大小

配置

13 位行大小

配置

[1:0] 为存储区域地址 BA[1:0]。当仅使用 2 个内部存储区域时,BA1 必须始终设置为“0”。

2.访问保留的 (Res.) 地址范围会生成 AHB 错误。

文档 ID 018909 第 7 版1587/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

RM0090

表 254. 16 位数据总线宽度时的 SDRAM 地址映射

(1)(2)

HADDR(AHB 地址线)

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

1

9

1

8

1

7

1

6

1

5

1

4

1

3

1

2

1

0

987654321

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

1

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

1

1

行大小配置

Bank

Row[10:0]

[1:0]

Bank

[10:0]

11 位行大小

[1:0]

Bank

配置

Res.

Row[10:0]

[1:0]

Bank

[10:0]

[1:0]

Bank

[11:0]

[1:0]

Bank

Res.

Row[11:0]

12 位行大小

[1:0]

Bank

配置

[11:0]

[1:0]

Bank

[11:0]

[1:0]

Bank

Res.

Row[12:0]

[1:0]

Bank

[12:0]

13 位行大小

[1:0]

Bank

配置

[12:0]

[1:0]

ReBank

Row[12:0]

s.[1:0]

Res.

2.访问保留的空间 (Res.) 会生成 AHB 错误。

0:是 16 位访问的字节屏蔽。

BM0

(3)

BM0

BM0

BM0

BM0

BM0

BM0

BM0

BM0

BM0

BM0

BM0

[1:0] 为存储区域地址 BA[1:0]。当仅使用 2 个内部存储区域时,BA1 必须始终设置为“0”。

表 255. 32 位数据总线宽度时的 SDRAM 地址映射

(1)(2)

HADDR(AHB 地址线)

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

1

9

1

8

1

7

1

6

1

5

1

4

1

3

1

2

1

0

98765432

1

1

行大小配置

11 位行大小

配置

Bank

[1:0]

Bank

Res.

[1:0]

Bank

Res.

[1:0]

Bank

Res.

[1:0]

Res.

Row[10:0]

Row[10:0]

Row[10:0]

Row[10:0]

BM[1:0]

(3)

BM[1:0]

BM[1:0]

BM[1:0]

1588/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

0

0

RM0090可变存储控制器 (FMC)

表 255. 32 位数据总线宽度时的 SDRAM 地址映射

(1)(2)

(续)

HADDR(AHB 地址线)

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

1

9

1

8

1

7

1

6

1

5

1

4

1

3

1

2

1

0

98765432

1

1

行大小配置

1

Bank

[1:0]

Bank

Res.

12 位行大小

[1:0]

Bank

配置

Res.

[1:0]

Bank

Res.

[1:0]

Bank

Res.

[1:0]

Bank

Res.

13 位行大小

[1:0]

Bank

配置

Res.

[1:0]

Bank

[1:0]

Res.

Row[11:0]

Row[11:0]

Row[11:0]

Row[11:0]

Row[12:0]

Row[12:0]

Row[12:0]

Row[12:0]

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

Column[7:0]

Column[8:0]

Column[9:0]

Column[10:0]

BM[1:0]

BM[1:0]

BM[1:0]

BM[1:0]

BM[1:0]

BM[1:0]

BM[1:0]

BM[1:0]

[1:0] 为存储区域地址 BA[1:0]。当仅使用 2 个内部存储区域时,BA1 必须始终设置为“0”。

2.访问保留的空间 (Res.) 会生成 AHB 错误。

[1:0]:是 32 位访问的字节屏蔽。

37.5 NOR Flash/PSRAM 控制器

FMC 会生成适当的信号时序,以驱动以下类型的存储器:

异步 SRAM 和 ROM

8 位

16位

32位

异步模式

同步访问的突发模式

PSRAM(Cellular RAM)

–复用或非复用

NOR Flash

异步模式

同步访问的突发模式

复用或非复用

FMC 会为每个存储区域输出唯一的片选信号 NE[4:1]。所有其它信号(地址、数据和控制)

均为共享信号。

文档 ID 018909 第 7 版1589/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

0

可变存储控制器 (FMC)

FMC 通过可编程时序支持多种器件,其中:

等待周期可编程(最多 15 个时钟周期)

总线周转周期可编程(最多 15 个时钟周期)

输出使能和写入使能延迟可编程(最多 15 个时钟周期)

独立的读和写时序和协议,以支持各种存储器和时序

可编程连续时钟 (FMC_CLK) 输出。

RM0090

FMC 时钟 (FMC_CLK) 是 HCLK 时钟的约数。该时钟可传送到选定的外部器件,根据

FMC_BCR1 寄存器中 CCKEN 位的配置,可决定只在同步访问期间传送还是同步异步访问

期间都传送:

如果 CCLKEN 位置 0,则 FMC 仅在同步访问(读/写事务)期间生成时钟 (CLK)。

如果 CCLKEN 位置 1,则 FMC 将在异步和同步访问期间生成连续时钟。要生成 FMC_CLK

连续时钟,存储区域 1 还必须配置为支持同步模式(请参见

37.5.6

节:

NOR/PSRAM

控制寄存器

)。由于所有同步存储器均使用同一个时钟,因此在生成连续输出时钟和执行

同步访问时,AHB 数据大小必须与存储器数据宽度 (MWID) 相同,否则 FMC_CLK 频率

将根据 AHB 数据事务发生变化(有关 FMC_CLK 分频比公式的信息请参见

37.5.5

节:

同步事务

)。

每个存储区域的大小固定,均为 64 MB。每个存储区域都通过专用的寄存器配置(请参见

37.5.6

节:

NOR/PSRAM

控制寄存器

)。

存储器的可编程参数包括访问时间(请参见

256)和对等待管理的支持(用于在突发模式

下访问 NOR Flash 和 PSRAM)。

表 256. NOR/PSRAM 的可编程访问参数

参数

地址建立

地址保持

数据建立

总线周转

功能

地址建立阶段的持续时间

地址保持阶段的持续时间

数据建立阶段的持续时间

总线周转阶段的持续时间

构建一个存储器时钟周期

(CLK) 所需的 AHB 时钟周期

(HCLK) 数量

在发出突发的第一个数据

前向存储器发出的时钟

周期数量

访问模式

异步

异步,复用 I/O

异步

异步和同步读取

单位

AHB 时钟周期

(HCLK)

AHB 时钟周期

(HCLK)

AHB 时钟周期

(HCLK)

AHB 时钟周期

(HCLK)

AHB 时钟周期

(HCLK)

存储器时钟周期

(CLK)

最小值 最大值

0

1

1

0

15

15

256

15

时钟分频比同步

216

数据延迟同步

217

1590/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.5.1

注意:

外部存储器接口信号

257、

258 和

259 列出了通常用于连接 NOR Flash、SRAM 和 PSRAM 的信号。

前缀“

N

”标识低电平有效的信号。

NOR Flash,非复用 I/O

表 257. 非复用 I/O NOR Flash

FMC 信号名称

I/O

功能

CLK O

时钟(用于同步访问)

A[25:0] O

地址总线

D[31:0] I/O

双向数据总线

NE[x]

NOE

NWE

NL(= NADV)

NWAIT

O

O

O

O

I

片选,x = 1..4

输出使能

写入使能

锁存使能(对于部分 NOR Flash 器件,

此信号也称为地址有效 (NADV))

FMC 的 NOR Flash 等待输入信号

最大容量为 512 Mb(26 个地址线)。

NOR Flash,16 位复用 I/O

表 258. 16 位复用 I/O NOR Flash

FMC 信号名称

I/O

功能

时钟(用于同步访问)

地址总线

CLK O

A[25:16] O

AD[15:0] I/O

16 位复用,双向地址/数据总线(16 位地址 A[15:0] 和

数据 D[15:0] 在数据总线上复用)

NE[x]

NOE

NWE

NL(= NADV)

NWAIT

O

O

O

O

I

片选,x = 1..4

输出使能

写入使能

锁存使能(对于部分 NOR Flash 器件,

此信号也称为地址有效 (NADV))

FMC 的 NOR Flash 等待输入信号

最大容量为 512 Mb。

文档 ID 018909 第 7 版1591/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

PSRAM/SRAM,非复用 I/O

表 259. 非复用 I/O PSRAM/SRAM

FMC 信号名称

I/O

功能

时钟(仅用于 PSRAM 同步访问)

地址总线

数据双向总线

片选,x = 1..4(在 PSRAM 应用中被称作 NCE

(Cellular RAM,即 CRAM))

输出使能

写入使能

仅用于 PSRAM 输入的地址有效信号(存储器信号名称:NADV)

PSRAM 发送给 FMC 的等待输入信号

Byte3 高字节使能(存储器信号名称:NUB)

Byte2 低字节使能(存储器信号名称:NLB)

Byte1 高字节使能(存储器信号名称:NLB)

Byte0 低字节使能(存储器信号名称:NLB)

CLK O

A[25:0] O

D[31:0] I/O

NE[x]

NOE

NWE

NL(= NADV)

NWAIT

O

O

O

O

I

NBL[3] O

NBL[2] O

NBL[1] O

NBL[0] O

最大容量为 512

Mb。

PSRAM,16 位复用 I/O

表 260.

16 位

复用 I/O PSRAM

FMC 信号名称

I/O

功能

时钟(用于同步访问)

地址总线

16 位复用,双向地址/数据总线

(16 位地址 A[15:0] 和数据 D[15:0] 在数据总线上复用)

片选,x = 1..4(在 PSRAM 应用中被称作 NCE

(Cellular RAM,即 CRAM))

输出使能

写入使能

用于 PSRAM 输入的地址有效信号(存储器信号名称:NADV)

PSRAM 发送给 FMC 的等待输入信号

高字节使能(存储器信号名称:NUB)

低字节使能(存储器信号名称:NLB)

CLK O

A[25:16] O

AD[15:0] I/O

NE[x]

NOE

NWE

NL(= NADV)

NWAIT

O

O

O

O

I

NBL[1] O

NBL[0] O

最大容量为 512

Mb(26 个地址线)。

1592/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.5.2 支持的存储器和事务

下面的

261 显示的是当 NOR Flash、PSRAM 和 SRAM 的存储器数据总线宽度为 16 位时

所支持的设备、访问模式和事务的示例。本示例中 FMC 不允许(或不支持)的事务以灰色

显示。

表 261. NOR Flash/PSRAM:支持的存储器和事务示例

设备模式

异步

异步

异步

异步

R/W

AHB 数

据大小

存储器

是否允许

数据大小

注释

R 8 16

W 8 16

分为 2 次 FMC 访问

分为 2 次 FMC 访问

不支持该模式

R 16 16

W 16 16

NOR Flash

(复用 I/O 和非

复用 I/O)

异步

异步

异步页

同步

同步

同步

异步

异步

异步

异步

异步

R 32 16

W 32

R

R

-

8

16

16

16

R 16 16

R 32 16

R 8 16

W 8 16

使用字节通道 NBL[1:0]

分为 2 次 FMC 访问

分为 2 次 FMC 访问,

使用字节通道 NBL[1:0]

使用字节通道 NBL[1:0]

分为 2 次 FMC 访问

分为 2 次 FMC 访问

不支持该模式

使用字节通道 NBL[1:0]

R 16 16

W 16 16

R 32 16

W 32

R

R

-

8

16

16

16

PSRAM

(复用 I/O 和非

复用 I/O)

异步

异步页

同步

同步

同步

同步

同步

异步

异步

R 16 16

R 32 16

W

W

R

W

8

16/32

8 / 16

8 / 16

16

16

16

16

SRAM 和 ROM

异步

异步

R 32 16

W 32 16

文档 ID 018909 第 7 版1593/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

37.5.3 通用时序规则

信号同步

所有的控制器输出信号在内部时钟 (HCLK) 的上升沿变化

在同步模式(读取或写入)下,所有输出信号在 HCLK 的上升沿变化。无论 CLKDIV 值

为何,所有输出均会按以下方式变化:

NOEL/NWEL/NEL/NADVL/NADVH/NBLL/ 地址有效输出在 FMC_CLK 时钟的下降

沿变化。

NOEH/NWEH/NEH/NOEH/NBLH/ 地址有效输出在 FMC_CLK 时钟的上升沿变化。

37.5.4 NOR Flash/PSRAM 控制器异步事务

异步静态存储器(NOR Flash、PSRAM、SRAM)

信号通过内部时钟 HCLK 进行同步。此时钟不会发送到存储器

FMC 总是会先对数据进行采样,而后再禁止片选信号 NE。这样可以确保符合存储器数据

保持时序的要求(片选为高到数据传输的最短时间通常为 0 ns)

如果使能扩展模式(FMC_BCRx 寄存器中的 EXTMOD 位置 1),则最多可提供四种扩

展模式(A、B、C 和 D)。可以混合使用 A、B、C 和 D 模式来进行读取和写入操作。

例如,可以在模式 A 下执行读取操作,而在模式 B 下执行写入操作。

如果禁用扩展模式(FMC_BCRx 寄存器中的 EXTMOD 位复位),则 FMC 可以在模式 1

或模式 2 下运行,如下所述:

当选择 SRAM/PSRAM 存储器类型时,模式 1 为默认模式(FMC_BCRx 寄存器中

MTYP = 0x0 或 0x01)

当选择 NOR 存储器类型时,模式 2 为默认模式(FMC_BCRx 寄存器中 

MTYP = 0x10)。

1594/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

模式 1 - SRAM/PSRAM (CRAM)

下图显示所支持模式的读取和写入事务以及 FMC _BCRx 和 FMC_BTRx/FMC_BWTRx 寄存

器的所需配置。

图 456. 模式 1 读取访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

1%/>󰀖󰀝󰀓@

1([

12(

1:(

催⬉󱑇

'>󰀖󰀔󰀝󰀓@

$''6(7

+&/.󰀃󰨼󱳳󰀃

󱭄󱥂⬅󱄬󰙼󰰼偅󰡼

'$7$67󰀃󰀃󰀃󰀃󰀃󰀃󰀃󰀃

+&/.󰀃󰨼󱳳󰀃

06󰀖󰀓󰀗󰀘󰀕9󰀔

图 457. 模式 1 写入访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

1%/>󰀖󰀝󰀓@

1([

12(

󰀔+&/.

1:(

'>󰀖󰀔󰀝󰀓@

$''6(7󰀃󰀃󰀃󰀃󰀃󰀃󰀃󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󰀃)60&󰀃偅󰡼

󰀋'$7$67󰀃󰀎󰀃󰀔󰀌

+&/.󰀃󰨼󱳳

06󰀖󰀓󰀗󰀘󰀖9󰀔

文档 ID 018909 第 7 版1595/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

位于写入事务末尾的一个 HCLK 周期有助于确保 NWE 上升沿之后的地址和数据保持时间。

由于存在此 HCLK 周期,DATAST 值必须大于零 (DATAST > 0)。

表 262. FMC_BCRx 位字段

位号

31-21

20

19

18:16

15

14

13

12

11

10

位名

保留

CCLKEN

CBURSTRW

保留

ASYNCWAIT

EXTMOD

WAITEN

WREN

WAITCFG

WRAPMOD

0x000

根据需要进行设置

0x0(对异步模式没有影响)

0x0

如果存储器支持该特性,则置为 1。否则,保持为 0。

0x0

0x0(对异步模式没有影响)

根据需要进行设置

无关

0x0

要设置的值

9 WAITPOL

仅当位 15 为 1 时才有意义

8 BURSTEN

7

保留

0x0

0x1

无关

根据需要进行设置

根据需要进行设置,0x2 除外 (NOR Flash)

0x0

6 FACCEN

5-4 MWID

3-2 MTYP

1 MUXE

0 MBKEN 0x1

表 263. FMC_BTRx 位字段

位号

31:30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

无关

无关

无关

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

第二个访问阶段的持续时间(写入访问为 DATAST+1 个 HCLK 周期,

读取访问为 DATAST 个 HCLK 周期)。

无关

第一个访问阶段的持续时间(ADDSET 个 HCLK 周期)。

ADDSET 最小值为 0。

要设置的值

1596/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

模式 A - SRAM/PSRAM (CRAM) OE 切换

图 458. 模式 A 读取访问波形

󱄬󰙼󰰼џ󰡵

A[25:0]

NBL[3:0]

NEx

NOE

NWE

催⬉󱑇

D[31:0]

$''6(7󰀃󰀃󰀃󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󱄬󰙼󰰼偅󰡼

'$7$67

+&/.󰀃󰨼󱳳

MS30454V1

[3:0] 在进行读取访问时为低电平

图 459. 模式 A 写入访问波形

󱄬󰙼󰰼џ󰡵

A[25:0]

NBL[3:0]

NEx

NOE

NWE

1HCLK

D[31:0]

$''6(7󰀃󰀃󰀃󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󰀃)60&󰀃偅󰡼

󰀋'$7$67󰀃󰀎󰀃󰀔󰀌

+&/.󰀃󰨼󱳳

MS30455V1

与模式 1 的不同之处在于 NOE 的切换与独立的读取和写入时序。

文档 ID 018909 第 7 版1597/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

RM0090

表 264. FMC_BCRx 位字段

位号

31-21

20

19

18:16

15

保留

保留

位名

0x000

CCLKEN

CBURSTRW

根据需要进行设置

要设置的值

0x0(对异步模式没有影响)

0x0

如果存储器支持该特性,则置为 1。否则,保持为 0。

0x1

0x0(对异步模式没有影响)

根据需要进行设置

无关

0x0

ASYNCWAIT

14 EXTMOD

13

12

11

10

WAITEN

WREN

WAITCFG

WRAPMOD

9 WAITPOL

仅当位 15 为 1 时才有意义

8 BURSTEN

7

保留

0x0

0x1

无关

6 FACCEN

5-4 MWID

根据需要进行设置

3-2 MTYP

根据需要进行设置,0x2 除外 (NOR Flash)

1 MUXEN

0 MBKEN

0x0

0x1

表 265. FMC_BTRx 位字段

位号

31:30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x0

无关

无关

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

写入访问第二个阶段的持续时间(DATAST+1 个 HCLK 周期)

无关

写入访问第一个阶段的持续时间(ADDSET+1 个 HCLK 周期)。

ADDSET 最小值为 0。

要设置的值

1598/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

可变存储控制器 (FMC)

表 266. FMC_BWTRx 位字段

位号

31:30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x0

无关

无关

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

写入访问第二个阶段的持续时间(DATAST 个 HCLK 周期)。

无关

写入访问第一个阶段的持续时间(ADDSET 个 HCLK 周期)。

ADDSET 最小值为 0。

要设置的值

模式 2/B - NOR Flash

图 460. 模式 2 和模式 B 读取访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

1$'9

1([

12(

1:(

催⬉󱑇

'>󰀖󰀔󰀝󰀓@

$''6(7󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󱄬󰙼󰰼偅󰡼

'$7$67

󰀃+&/.󰀃󰨼󱳳

06󰀖󰀓󰀗󰀘󰀙9󰀔

[3:0] 在进行读取访问时为低电平

文档 ID 018909 第 7 版1599/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

图 461. 模式 2 写入访问波形

󱄬󰙼󰰼џ󰡵

A[25:0]

RM0090

NADV

NEx

NOE

1HCLK

NWE

D[31:0]

$''6(7󰀃󰀃󰀃󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󰀃)60&󰀃偅󰡼

󰀋'$7$67󰀃󰀎󰀃󰀔󰀌

+&/.󰀃󰨼󱳳

MS30457V1

图 462. 模式 B 写入访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

1$'9

1([

12(

󰀔+&/.

1:(

'>󰀖󰀔󰀝󰀓@

$''6(7󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󰀃)60&󰀃偅󰡼

󰀋'$7$67󰀃󰀎󰀃󰀔󰀌

󰀃+&/.󰀃󰨼󱳳

06󰀖󰀓󰀗󰀘󰀛9󰀔󰀑

与模式 1 的不同之处在于设置扩展模式(模式 B)时的 NWE 切换与独立的读取和写入时序。

1600/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

可变存储控制器 (FMC)

表 267. FMC_BCRx 位字段

位号

31-21

20

19

18:16

15

位名

保留

CCLKEN

CBURSTRW

保留

ASYNCWAIT

0x000

根据需要进行设置

0x0(对异步模式没有影响)

0x0

如果存储器支持该特性,则置为 1。否则,保持为 0。

模式 B 为 0x1,模式 2 为 0x0

0x0(对异步模式没有影响)

根据需要进行设置

无关

0x0

要设置的值

14 EXTMOD

13

12

11

10

WAITEN

WREN

WAITCFG

WRAPMOD

9 WAITPOL

仅当位 15 为 1 时才有意义

8 BURSTEN

7

保留

0x0

0x1

0x16 FACCEN

5-4 MWID

根据需要进行设置

3-2 MTYP 0x2 (NOR Flash)

1 MUXEN

0 MBKEN

0x0

0x1

表 268. FMC_BTRx 位字段

位号

31-30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x1 如果设置了扩展模式

无关

无关

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

读取访问第二个阶段的持续时间(DATAST 个 HCLK 周期)。

无关

读取访问第一个阶段的持续时间(ADDSET 个 HCLK 周期)。

ADDSET 最小值为 0。

要设置的值

文档 ID 018909 第 7 版1601/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

RM0090

表 269. FMC_BWTRx 位字段

位号

31-30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x1 如果设置了扩展模式

无关

无关

要设置的值

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

写入访问第二个阶段的持续时间(DATAST 个 HCLK 周期)。

无关

写入访问第一个阶段的持续时间(ADDSET 个 HCLK 周期)。

ADDSET 最小值为 0。

注意:仅当设置了扩展模式(模式

B

)时,

FMC_BWTRx

寄存器才有效,否则其内容均为“无关”。

模式 C - NOR Flash - OE 切换

图 463. 模式 C 读取访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

1$'9

1([

12(

1:(

催⬉󱑇

'>󰀖󰀔󰀝󰀓@

$''6(7󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󱄬󰙼󰰼偅󰡼

'$7$67

󰀃+&/.󰀃󰨼󱳳

06󰀖󰀓󰀗󰀘󰀜9󰀔

1602/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

图 464. 模式 C 写入访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

可变存储控制器 (FMC)

1$'9

1([

12(

󰀔+&/.

1:(

'>󰀖󰀔󰀝󰀓@

$''6(7󰀃󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󰀃)60&󰀃偅󰡼

󰀋'$7$67󰀃󰀎󰀃󰀔󰀌

󰀃+&/.󰀃󰨼󱳳

06󰀖󰀓󰀗󰀙󰀓9󰀔

与模式 1 的不同之处在于 NOE 的切换与独立的读取和写入时序。

表 270. FMC_BCRx 位字段

位号

31-21

20

19

18:16

15

位名

保留

CCLKEN

CBURSTRW

保留

ASYNCWAIT

0x000

根据需要进行设置

0x0(对异步模式没有影响)

0x0

如果存储器支持该特性,则置为 1。否则,保持为 0。

0x1

0x0(对异步模式没有影响)

根据需要进行设置

无关

0x0

要设置的值

14 EXTMOD

13

12

11

10

WAITEN

WREN

WAITCFG

WRAPMOD

9 WAITPOL

仅当位 15 为 1 时才有意义

8 BURSTEN

7

保留

0x0

0x1

0x16 FACCEN

文档 ID 018909 第 7 版1603/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

表 270. FMC_BCRx 位字段(续)

位号位名要设置的值

RM0090

5-4 MWID

根据需要进行设置

3-2 MTYP 0x02 (NOR Flash)

1 MUXEN

0 MBKEN

0x0

0x1

表 271. FMC_BTRx 位字段

位号

31:30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x2

0x0

0x0

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

写入访问第二个阶段的持续时间(DATAST 个 HCLK 周期)

无关

写入访问第一个阶段的持续时间(ADDSET 个 HCLK 周期)。

ADDSET 最小值为 0。

要设置的值

表 272. FMC_BWTRx 位字段

位号

31:30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x2

无关

无关

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

写入访问第二个阶段的持续时间(DATAST 个 HCLK 周期)。

无关

写入访问第一个阶段的持续时间(ADDSET 个 HCLK 周期)。

ADDSET 最小值为 0。

要设置的值

1604/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

模式 D - 扩展地址异步访问

图 465. 模式 D 读取访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

1$'9

1([

12(

1:(

催⬉󱑇

'>󰀖󰀔󰀝󰀓@

$''6(7󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󱄬󰙼󰰼偅󰡼

'$7$67

󰀃+&/.󰀃󰨼󱳳

06󰀖󰀓󰀗󰀙󰀔9󰀔

$''+/'

+&/.󰀃󰨼󱳳

图 466. 模式 D 写入访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

1$'9

1([

12(

󰀔+&/.

1:(

'>󰀖󰀔󰀝󰀓@

$''6(7󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󰀃)60&󰀃偅󰡼

󰀋'$7$67󰀎󰀃󰀔󰀌

󰀃+&/.󰀃󰨼󱳳

06󰀖󰀓󰀗󰀙󰀔9󰀔

$''+/'

+&/.󰀃󰨼󱳳

与模式 1 的不同之处在于 NADV 变化后 NOE 的切换与独立的读取和写入时序。

文档 ID 018909 第 7 版1605/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

RM0090

表 273. FMC_BCRx 位字段

位号

31-21

20

19

18:16

15

位名

保留

CCLKEN

CBURSTRW

保留

ASYNCWAIT

0x000

根据需要进行设置

要设置的值

0x0(对异步模式没有影响)

0x0

如果存储器支持该特性,则置为 1。否则,保持为 0。

0x1

0x0(对异步模式没有影响)

根据需要进行设置

无关

0x0

14 EXTMOD

13

12

11

10

WAITEN

WREN

WAITCFG

WRAPMOD

9 WAITPOL

仅当位 15 为 1 时才有意义

8 BURSTEN

7

保留

0x0

0x1

根据存储器支持情况进行设置

根据需要进行设置

根据需要进行设置

0x0

0x1

6 FACCEN

5-4 MWID

3-2 MTYP

1 MUXEN

0 MBKEN

表 274. FMC_BTRx 位字段

位号

31:30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x3

无关

无关

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

写入访问第二个阶段的持续时间(DATAST+1 个 HCLK 周期)

读取访问中间阶段的持续时间(ADDHLD 个 HCLK 周期)。

写入访问第一个阶段的持续时间(ADDSET+1 个 HCLK 周期)。

ADDSET 的最小值为 1。

要设置的值

1606/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

可变存储控制器 (FMC)

表 275. FMC_BWTRx 位字段

位号

31:30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x3

无关

无关

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

第二个访问阶段的持续时间(写入访问为 DATAST+1 个 HCLK 周期)

写入访问中间阶段的持续时间(ADDHLD 个 HCLK 周期)

写入访问第一个阶段的持续时间(ADDSET 个 HCLK 周期)。

ADDSET 的最小值为 1。

要设置的值

复用模式 - 复用异步访问 NOR Flash

图 467. 复用读取访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀔󰀙@

1$'9

1([

12(

1:(

催⬉󱑇

$'>󰀔󰀘󰀝󰀓@

Ԣ󰴄󰴔

$''6(7󰀃

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󰀃

󱄬󰙼󰰼偅󰡼

'$7$67

󰀃+&/.󰀃󰨼󱳳

DL󰀔󰀘󰀘󰀙󰀛

$''+/'

+&/.󰀃󰨼󱳳

文档 ID 018909 第 7 版1607/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

图 468. 复用写入访问波形

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀔󰀙@

RM0090

1$'9

1([

12(

󰀔+&/.

1:(

$'>󰀔󰀘󰀝󰀓@

Ԣ󰴄󰴔

$''6(7󰀃

+&/.󰀃󰨼󱳳

$''+/'

+&/.󰀃󰨼󱳳

󱭄󱥂⬅󰀃)60&󰀃偅󰡼

󰀋'$7$67󰀃󰀎󰀃󰀔󰀌

󰀃+&/.󰀃󰨼󱳳

DL󰀔󰀘󰀘󰀙󰀜

与模式 D 的不同之处在于在数据总线上驱动低地址字节。

表 276. FMC_BCRx 位字段

位号

31-21

20

19

18:16

15

位名

保留

CCLKEN

CBURSTRW

保留

ASYNCWAIT

0x000

根据需要进行设置

0x0(对异步模式没有影响)

0x0

如果存储器支持该特性,则置为 1。否则,保持为 0。

0x0

0x0(对异步模式没有影响)

根据需要进行设置

无关

0x0

要设置的值

14 EXTMOD

13

12

11

10

WAITEN

WREN

WAITCFG

WRAPMOD

9 WAITPOL

仅当位 15 为 1 时才有意义

8 BURSTEN

7

保留

0x0

0x1

0x16 FACCEN

1608/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

表 276. FMC_BCRx 位字段(续)

位号位名要设置的值

可变存储控制器 (FMC)

5-4 MWID

根据需要进行设置

3-2 MTYP 0x2 (NOR Flash)

1 MUXEN

0 MBKEN

0x1

0x1

表 277. FMC_BTRx 位字段

位号

31:30

29-28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x0

无关

无关

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

第二个访问阶段的持续时间(读取访问为 DATAST 个 HCLK 周期,

写入访问为 DATAST+1 个 HCLK 周期)。

访问中间阶段的持续时间(ADDHLD 个 HCLK 周期)。

第一个访问阶段的持续时间(ADDSET 个 HCLK 周期)。ADDSET

的最小值为 1。

要设置的值

异步访问中的 WAIT 管理

如果异步存储器发出 WAIT 信号,指示尚未准备好接受或提供数据,则 FMC_BCRx 寄存器

中的 ASYNCWAIT 位必须置 1。

如果 WAIT 信号处于有效状态(电平高低取决于 WAITPOL 位),则由 DATAST 位控制的第

二个访问阶段(数据建立阶段)将延长,直到 WAIT 变为无效状态。与数据建立阶段不同,

由 ADDSET 和 ADDHLD 位控制的第一个访问阶段(地址建立和地址保持阶段)对 WAIT 不

敏感,因此第一个访问阶段不会延长。

文档 ID 018909 第 7 版1609/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

必须配置数据建立阶段,以便在存储器事务结束前 4 个 HCLK 周期检测到 WAIT。必须考虑

以下情况:

1.存储器发出的 WAIT 信号和 NOE/NWE 信号对齐:

DATAST4HCLK+max_wait_asrtion_time

2. 存储器发出的 WAIT 信号和 NEx 对齐(或者 NOE/NWE 信号不翻转):

如果

max_wait_asrtion_time>address_pha+hold_pha

那么:

DATAST4HCLK+

max_wait_asrtion_time

否则

DATAST4HCLK

其中,max_wait_asrtion_time 是在 NEx/NOE/NWE 变为低电平后存储器使能 WAIT

信号所花费的最长时间。

469

470

显示了异步存储器释放 WAIT 之后,在存储器访问阶段增加的 HCLK 时钟周

期的个数(与上述情况无关)。

address_pha

hold_pha

图 469. 读取访问波形期间的异步等待

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

󰴄󰴔䰊↉

1([

󱭄󱥂䆒㕂䰊↉

1:$,7

󱮴󱛣Н󱮴󱛣Н

12(

'>󰀔󰀘󰀝󰀓@

󱭄󱥂⬅󱄬󰙼󰰼偅󰡼

󰀗+&/.󰀃

06󰀖󰀓󰀗󰀙󰀖9󰀕

极性取决于 FMC_BCRx 寄存器中的 WAITPOL 位设置。

1610/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

图 470. 写入访问波形期间的异步等待

可变存储控制器 (FMC)

󱄬󰙼󰰼џ󰡵

$>󰀕󰀘󰀝󰀓@

󰴄󰴔䰊↉

1([

󱭄󱥂䆒㕂䰊↉

1:$,7

󱮴󱛣Н󱮴󱛣Н

󰀔+&/.󰀃

1:(

'>󰀔󰀘󰀝󰀓@

󱭄󱥂⬅󰀃)60&󰀃偅󰡼

󰀖+&/.󰀃

06󰀖󰀓󰀗󰀙󰀗9󰀕

极性取决于 FMC_BCRx 寄存器中的 WAITPOL 位设置。

37.5.5 同步事务

存储器时钟 FMC_CLK 是 HCLK 的约数。它取决于 CLKDIV 的值和 MWID/AHB 数据大小,

如以下公式所示:

FMC_CLK 分频比 = max(CLKDIV + 1, MWID(AHB 数据大小))

MWID 为 16 位或 8 位时,FMC_CLK 分频比始终由 CLKDIV 的设定值定义。

MWID 为 32 位时,FMC_CLK 分频比还取决于 AHB 数据大小。

示例:

CLKDIV = 1,MWID = 32 位,AHB 数据大小 = 8 位时,FMC_CLK = HCLK/4。

CLKDIV = 1,MWID = 16 位,AHB 数据大小 = 8 位时,FMC_CLK = HCLK/2。

NOR Flash 指定了从 NADV 使能到 CLK 高电平的最短时间。为了符合这一限制,FMC 不会

在同步访问的第一个内部时钟周期内(NADV 使能之前)将时钟发到存储器。这样可以确保

存储器时钟的上升沿出现在 NADV 低脉冲的中间。

文档 ID 018909 第 7 版1611/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

数据延迟与 NOR 延迟

数据延迟是对数据进行采样之前需要等待的周期数。DATLAT 的值必须与 NOR FLASH 配置

寄存器中指定的延迟值一致。当数据延迟计数中 NADV 为低电平时,FMC 不会计入时钟周

期。

小心:一些 NOR Flash 将 NADV 低电平周期计入数据延迟计数,这样 NOR Flash 延迟和 FMC

DATLAT 参数之间的确切关系可以是以下任一种:

NOR Flash 延迟 = (DATLAT + 2) 个 CLK 时钟周期

NOR Flash 延迟 = (DATLAT + 3) 个 CLK 时钟周期

近来有一些存储器会在延迟阶段使能 NWAIT。在这种情况下,可以将 DATLAT 设置为最小

值。然后,FMC 会对数据进行采样,并且等待足够长的时间来评估数据是否有效。这样,

FMC 就能检测到存储器存在延迟的时间,从而处理真实数据。

其他存储器不会在延迟期间使能 NWAIT。在这种情况下,必须正确设置 FMC 和存储器的延

迟,否则可能会将无效数据误用为有效数据,或者在存储器访问初始阶段丢失有效数据。

单次突发传输

当所选存储区域配置为同步突发模式时,例如,如果向 16-bit 存储器请求了一个 AHB 单次

突发事务,则 FMC 会执行长度为 1 的突发事务(如果 AHB 传输为 16 位)或者长度为 2 的

突发事务(如果 AHB 传输为 32 位),然后在最后一个数据选通时禁止片选信号。

与异步读取操作相比,就周期而言这并不是最有效的传输方法。但是,随机异步读取需要先

重新编程存储器访问模式,这样总时间会更长。

等待管理

对于同步 NOR Flash,会在配置的延迟周期(相当于 (DATLAT+2) 个 CLK 时钟周期)之后

对 NWAIT 进行评估。

如果 NWAIT 有效(WAITPOL = 0 时为低电平,WAITPOL = 1 时为高电平),会插入等待状

态,直到 NWAIT 无效(WAITPOL = 0 时为高电平,WAITPOL = 1 时为低电平)。

当 NWAIT 无效时,数据将立即(位 WAITCFG = 1)或在下一个时钟边沿(位 WAITCFG =

0)被视为有效。

通过 NWAIT 信号插入等待周期期间,控制器会继续将时钟脉冲发送到存储器,保持片选和

输出使能信号有效。但不将数据视为有效。

突发模式下,NOR Flash NWAIT 信号有两种时序配置:

Flash 在等待周期之前一个数据周期发出 NWAIT 信号(复位后的默认值)。

Flash 在等待周期期间发出 NWAIT 信号

1612/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

FMC 支持这两种 NOR Flash 等待周期配置,通过 FMC_BCRx 寄存器的 WAITCFG 位 (x = 0..3)

针对每个片选进行配置。

图 471. 等待配置波形

󱄬󰙼󰰼џ󰡵󰀃 󰀃󰀗󰀃Ͼ󰤞󱄫さ󰦥

+&/.

&/.

$>󰀕󰀘󰀝󰀔󰀙@

1$'9

1:$,7

󰀋:$,7&)*󰀃 󰀃󰀓󰀌

1:$,7

󰀋:$,7&)*󰀃 󰀃󰀔󰀌

󱦦󰜹ⱘㄝ󱕙⢊󱗕

$󰀒'>󰀔󰀘󰀝󰀓@

DGGU>󰀔󰀘󰀝󰀓@

󱭄󱥂󱭄󱥂󱭄󱥂

DL󰀔󰀘󰀚󰀜󰀛F

DGGU>󰀕󰀘󰀝󰀔󰀙@

文档 ID 018909 第 7 版1613/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

图 472. 同步复用读取模式波形 - NOR、PSRAM (CRAM)

󱄬󰙼󰰼џ󰡵󰀃 󰀃󰀗󰀃Ͼ󰤞󱄫さ󰦥

+&/.

RM0090

&/.

$>󰀕󰀘󰀝󰀔󰀙@

DGGU>󰀕󰀘󰀝󰀔󰀙@

1([

12(

1:(

催⬉󱑇

1$'9

1:$,7

󰀋:$,7&)* 󰀓󰀌

󰀋'$7/$7󰀃󰀎󰀃󰀕󰀌

󰀃&/.󰀃󰨼󱳳

$󰀒'>󰀔󰀘󰀝󰀓@

$GGU>󰀔󰀘󰀝󰀓@

󰀔󰀃Ͼ󱯊䩳󰀃󰀔󰀃Ͼ󱯊䩳󰀃

󰨼󱳳󰨼󱳳

󱭄󱥂

󱦦󰜹ⱘㄝ󱕙⢊󱗕

󱭄󱥂󱭄󱥂󱭄󱥂

󱭄󱥂䗝䗮

󱭄󱥂䗝䗮

DL󰀔󰀚󰀚󰀕󰀖H

1.字节通道输出 BL 未显示,它们对于 NOR 访问保持高电平,对于 PSRAM (CRAM) 访问则保持低电平。

表 278. FMC_BCRx 位字段

位号

31-21

20

19

18-15

位名

保留

CCLKEN

CBURSTRW

保留

0x000

根据需要进行设置

对同步读取没有影响

0x0

0x0

在存储器支持该特性的情况下置位为 1,否则保持为 0

对同步读取没有影响

是否置位视存储器情况而定

0x0

要设置的值

14 EXTMOD

13

12

11

10

WAITEN

WREN

WAITCFG

WRAPMOD

1614/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

表 278. FMC_BCRx 位字段(续)

位号位名

是否置位视存储器情况而定

0x1

0x1

在存储器支持的情况下置位 (NOR Flash)

要设置的值

可变存储控制器 (FMC)

9 WAITPOL

8 BURSTEN

7

保留

6 FACCEN

5-4 MWID

根据需要进行设置

3-2 MTYP

1 MUXEN

0 MBKEN

0x1 或 0x2

根据需要进行设置

0x1

表 279. FMC_BTRx 位字段

位号

31:30

29:28

27-24

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x0

数据延迟

数据延迟

0x0,使 CLK = HCLK(不支持)

0x1,使 CLK = 2 × HCLK

..

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

无关

无关

无关

要设置的值

文档 ID 018909 第 7 版1615/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

图 473. 同步复用写入模式波形 - PSRAM (CRAM)

󱄬󰙼󰰼џ󰡵󰀃 󰀃󰀕󰀃Ͼ󰤞󱄫さ󰦥

+&/.

RM0090

&/.

$>󰀕󰀘󰀝󰀔󰀙@

DGGU>󰀕󰀘󰀝󰀔󰀙@

1([

催䰏󱗕

12(

1:(

1$'9

1:$,7

󰀋:$,7&)*󰀃 󰀃󰀓󰀌

󰀋'$7/$7󰀃󰀎󰀃󰀕󰀌

󰀃&/.󰀃󰨼󱳳

$󰀒'>󰀔󰀘󰀝󰀓@

$GGU>󰀔󰀘󰀝󰀓@

󰀔󰀃Ͼ󱯊䩳󰀃󰀔󰀃Ͼ󱯊䩳󰀃

󰨼󱳳󰨼󱳳

1.存储器必须提前一个周期发出 NWAIT 信号,相应地 WAITCFG 必须编程为 0。

2.字节通道 (NBL) 输出未显示,当 NEx 有效时它们保持低电平。

󱦦󰜹ⱘㄝ󱕙⢊󱗕

󱭄󱥂󱭄󱥂

DL󰀔󰀗󰀚󰀖󰀔I

表 280. FMC_BCRx 位字段

位号

31-20

20

19

18-15

位名

保留

CCLKEN

CBURSTRW

保留

0x000

根据需要进行设置

0x1

0x0

0x0

在存储器支持该特性的情况下置位为 1,否则保持为 0。

0x1

0x0

0x0

要设置的值

14 EXTMOD

13

12

11

10

WAITEN

WREN

WAITCFG

WRAPMOD

1616/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

表 280. FMC_BCRx 位字段(续)

位号位名

是否置位视存储器情况而定

对同步写入没有影响

0x1

根据存储器支持情况进行设置

要设置的值

可变存储控制器 (FMC)

9 WAITPOL

8 BURSTEN

7

保留

6 FACCEN

5-4 MWID

根据需要进行设置

3-2 MTYP

1 MUXEN

0 MBKEN

0x1

根据需要进行设置

0x1

表 281. FMC_BTRx 位字段

位号

31-30

29:28

27-24

23-20

19-16

15-8

7-4

3-0

位名

保留

ACCMOD

DATLAT

CLKDIV

BUSTURN

DATAST

ADDHLD

ADDSET

0x0

0x0

数据延迟

0x0,使 CLK = HCLK(不支持)

0x1,使 CLK = 2 × HCLK

NEx 变为高电平到 NEx 变为低电平之间的时间 (BUSTURN HCLK)

无关

无关

无关

要设置的值

文档 ID 018909 第 7 版1617/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

37.5.6 NOR/PSRAM 控制寄存器

SRAM/NOR-Flash 片选控制寄存器 1..4 (FMC_BCR1..4)

SRAM/NOR-Flash chip-lect control registers 1..4

偏移地址:8 * (x – 1),x = 1...4

复位值:对于存储区域 1 为 0x0000 30DB,对于存储区域 2 到 4 为 0x0000 30D2

该寄存器包含每个存储区域的控制信息,用于 SRAM、PSRAM 和 NOR Flash。

319181716

C

B

U

R

S

T

R

W

C

C

L

K

E

N

15

A

S

C

Y

C

W

A

I

T

1413121110

W

R

A

P

M

O

D

W

A

I

T

C

F

G

E

X

T

M

O

D

W

A

I

T

E

N

W

R

E

N

9

W

A

I

T

P

O

L

8

B

U

R

S

T

E

N

7

R

e

s

e

r

v

e

d

6

F

A

C

C

E

N

5

M

W

I

D

43

M

T

Y

P

21

M

U

X

E

N

rw

0

M

B

K

E

N

rw

RervedRerved

rwrw

rwrwrwrwrwrwrwrwrwrwrwrwrw

位 31:21 保留,必须保持复位值

位 20 CCLKEN:连续时钟使能 (Continuous Clock Enable)。

该位可使能向外部存储器器件输出 FMC_CLK 时钟。

0:仅在同步存储器访问(读/写事务)期间生成 FMC_CLK。FMC_CLK 时钟分频比由 FMC_BCRx

寄存器中配置的 CLKDIV 值指定(复位后的默认值)。

1:异步和同步访问期间连续生成 FMC_CLK。CCLKEN 置 1 将激活 FMC_CLK 时钟。

注意:

FMC_BCR2..4

寄存器的

CCLKEN

位为“无关”位。只能通过

FMC_BCR1

寄存器使能。存储

区域

1

必须配置为支持同步模式才能生成

FMC_CLK

连续时钟。

注意:如果

CCLKEN

位置

1

,则

FMC_CLK

时钟分频比将由

FMC_BTR1

寄存器的

CLKDIV

值指定。

FMC_BWTR1

寄存器中的

CLKDIV

为无关位。

注意:如果采用同步模式且

CCLKEN

位置

1

,则与存储区域

1

之外的其它存储区域相连的同步存储器

将共用同一个时钟源(

FMC_BTR2..4

寄存器和

FMC_BWTR2..4

寄存器中的

CLKDIV

值和对

其它存储区域不起作用。)

位 19 CBURSTRW:突发写使能 (Write burst enable)。

PSRAM (CRAM) 在突发模式下工作时,该位可使能同步写访问。同步读取访问的使能位为

FMC_BCRx 寄存器中的 BURSTEN 位。

0:始终在异步模式下写入

1:在同步模式下写入。

位 18:16 保留,必须保持复位值

位 15 ASYNCWAIT:异步传输期间的等待信号 (Wait signal during asynchronous transfers)

该位可使能/禁止 FMC 使用等待信号,即使在异步协议期间也有效。

0:运行异步协议时不考虑 NWAIT 信号(复位后的默认值)

1:运行异步协议时考虑 NWAIT 信号

位 14 EXTMOD:扩展模式使能 (Extended mode enable)。

FMC 可对 FMC_BWTR 寄存器中异步访问的写入时序进行配置,此配置由 EXTMOD 位使能,进而

使读取和写入操作采用不同时序。

0:不考虑 FMC_BWTR 寄存器中的值(复位后的默认值)

1:考虑 FMC_BWTR 寄存器中的值

注意:如果禁用扩展模式,

FMC

可以在模式

1

或模式

2

下运行,如下所述:

当选择

SRAM/PSRAM

存储器类型时,模式

1

为默认模式(

MTYP = 0x0

0x01

当选择

NOR

存储器类型时,模式

2

为默认模式(

MTYP = 0x10

)。

1618/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

位 13 WAITEN:等待使能位 (Wait enable bit)。

该位可使能/禁止在同步模式下访问存储器时通过 NWAIT 信号插入等待周期。

0:禁止 NWAIT 信号(不考虑其电平,不在配置过的 Flash 延迟周期后插入等待周期)

1:使能 NWAIT 信号(考虑其电平,如果使能,在配置过的延迟周期后插入等待周期)(复位后的

默认值)

位 12 WREN:写入使能位 (Write enable bit)。

该位指示 FMC 是否使能/禁止在存储区域内写入:

0:FMC 禁止在存储区域内写入,如果进行写操作将报告 AHB 错误,

1:FMC 使能在存储区域内写入(复位后的默认值)。

位 11 WAITCFG:等待时序配置 (Wait timing configuration)。

NWAIT 信号指示存储器中的数据是否有效,或者在同步模式下访问存储器时是否必须插入等待周

期。该配置位决定存储器是在等待周期之前的一个时钟周期还是等待周期期间使能 NWAIT:

0:NWAIT 信号在等待周期之前的一个数据周期有效(复位后的默认值),

1:NWAIT 信号在等待周期期间有效(不适用于 PSRAM)。

位 10 WRAPMOD:环回突发模式支持 (Wrapped burst mode support)。

定义控制器是否会将一个 AHB 突发环回访问分割成为两个线性访问。仅在突发模式下访问存储器

时有效

0:不使能直接环回突发(复位后的默认值),

1:使能直接环回突发。

注意:由于

CPU

DMA

无法生成环回突发传输,因此该位无效。

位 9 WAITPOL:等待信号极性位 (Wait signal polarity bit)。

定义同步或异步模式下使用的存储器的等待信号极性:

0:NWAIT 低电平有效(复位后的默认值),

1:NWAIT 高电平有效。

位 8 BURSTEN:突发使能位 (Burst enable bit)。

该位可使能/禁止同步读取访问。该位仅对突发模式下工作的同步存储器有效:

0:禁止突发模式(复位后的默认值)。在异步模式下进行读取访问。

1:使能突发模式。在同步模式下进行读取访问。

位 7 保留,必须保持复位值

位 6 FACCEN:Flash 访问使能 (Flash access enable)

使能 NOR Flash 访问操作。

0:禁止相应的 NOR Flash 访问

1:使能相应的 NOR Flash 访问(复位后的默认值)

位 5:4 MWID:存储器数据总线宽度 (Memory data bus width)。

定义外部存储器器件宽度,对所有类型的存储器均有效。

00:8 位,

01:16 位(复位后的默认值),

10:32 位,

11:保留,不使用。

文档 ID 018909 第 7 版1619/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

位 3:2 MTYP:存储器类型 (Memory type)。

定义与相应存储区域相连的外部存储器类型:

00:SRAM(对于存储区域 2...4,复位后的默认值)

01:PSRAM (CRAM)

10:NOR Flash/OneNAND Flash(对于存储区域 1,复位后的默认值)

11:保留

位 1 MUXEN:地址/数据复用使能位 (Address/data multiplexing enable bit)。

该位置 1 时,地址和数据值在数据总线上复用,仅对 NOR 和 PSRAM 存储器有效:

0:地址/数据非复用

1:地址/数据在数据总线上复用(复位后的默认值)

位 0 MBKEN:存储区域使能位 (Memory bank enable bit)。

使能存储区域。复位后使能存储区域 1,其它存储区域均禁止。访问禁止的存储区域会引起 AHB

总线上的错误。

0:禁止相应的存储区域

1:使能相应的存储区域

SRAM/NOR-Flash 片选时序寄存器 1..4 (FMC_BTR1..4)

SRAM/NOR-Flash chip-lect timing registers 1..4

偏移地址:0x04 + 8 * (x – 1),x = 1..4

复位值:0x0FFF FFFF

复位值:0x0FFF FFFF

该寄存器包含每个存储区域的控制信息,用于 SRAM、PSRAM 和 NOR Flash。如果 FMC_BCRx

寄存器中的 EXTMOD 位置 1,该寄存器将和另外一个寄存器配合来配置写入和读取访问,也

就是说有 2 个寄存器可用:一个用于配置读取访问(此寄存器),另一个用于配置写入访问

(FMC_BWTRx 寄存器)。

1620/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

可变存储控制器 (FMC)

313121110

B

U

S

T

U

R

N

A

C

C

M

O

D

R

e

s

e

r

v

e

d

D

A

T

A

S

T

D

A

T

L

A

T

C

L

K

D

I

V

9876

A

D

D

H

L

D

5432

A

D

D

S

E

T

10

rwrwrw

rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

位 31:30 保留,必须保持复位值

位 29:28 ACCMOD:访问模式 (Access mode)

指定异步访问模式,如时序图所示。仅当 FMC_BCRx 寄存器中的 EXTMOD 位置 1 时,这些

位才有效。

00:访问模式 A

01:访问模式 B

10:访问模式 C

11:访问模式 D

位 27:24 DATLAT:同步存储器的数据延迟 (Data latency for synchronous memory)(参见位说明下方的

注释)

对于使能了读/写突发模式(BURSTEN/CBURSTRW 位置 1)的同步访问,该字段定义读写

首个数据前要发送给存储器的存储器时钟周期数 (+2)。该时序参数以 FMC_CLK 周期而非

HCLK 周期表示。该值与异步访问模式无关。

0000:首次突发访问时,2 个 CLK 时钟周期的数据延迟

1111:首次突发访问时,17 个 CLK 时钟周期的数据延迟(复位后的默认值)

位 23:20 CLKDIV:FMC_CLK 信号的时钟分频比 (Clock divide ratio (for FMC_CLK signal))

定义 FMC_CLK 时钟输出信号的周期,以 HCLK 周期数表示:

0000:保留

0001:FMC_CLK 周期 = 2 × HCLK 周期

0010:FMC_CLK 周期 = 3 × HCLK

周期

1111:FMC_CLK 周期 = 16 × HCLK 周期(复位后的默认值)

在异步 NOR Flash、SRAM 或 PSRAM 访问模式下,该值为无关值。

注意:有关

FMC_CLK

分频比公式的信息请参见第

37.5.5

节:同步事务

位 19:16 BUSTURN:总线周转阶段的持续时间 (Bus turnaround pha duration)

通过软件写入这些位可在写入/读取事务的结尾添加延迟。该延迟可以匹配连续事务之间的最

短时间(t

EHEL

由 NEx 高电平变为 NEx 低电平)以及存储器在读取访问后释放数据总线所需

的最长时间 (tEHQZ):

(BUSTRUN + 1)HCLK 周期  t

EHELmin

和 (BUSTRUN + 2)HCLK 周期  t

EHQZmax

(如果

EXTMOD =“0”)

(BUSTRUN + 2)HCLK 周期  max (t

EHELmin

,t

EHQZmax

)(如果 EXTMOD =“1”)。

0000:BUSTURN 阶段的持续时间 = 增加 0 个 HCLK 时钟周期

...

1111:BUSTURN 阶段的持续时间 = 15 × HCLK 时钟周期(复位后的默认值)

文档 ID 018909 第 7 版1621/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

位 15:8 DATAST:数据阶段的持续时间 (Data-pha duration)

通过软件写入这些位可定义数据阶段的持续时间(请参见

456 到

468),适用于异步访

问模式:

0000 0000:保留

0000 0001:DATAST 阶段的持续时间 = 1 × HCLK 时钟周期

0000 0010:DATAST 阶段的持续时间 = 2 × HCLK 时钟周期

...

1111 1111:DATAST 阶段的持续时间 = 255 × HCLK 时钟周期(复位后的默认值)

有关每种存储器类型和访问模式数据阶段持续时间的信息,请参见相应图片(

456 到

468)。

例如:在模式 1、写入访问以及 DATAST=1 条件下,数据阶段的持续时间 = DATAST+1 = 2

个 HCLK 时钟周期。

注意:在同步访问模式下,该值为无关值。

位 7:4 ADDHLD:地址保持阶段的持续时间 (Address-hold pha duration)

通过软件写入这些位可定义地址保持阶段的持续时间(请参见

465 到

468),适用于模

式 D 或复用访问:

0000:保留

0001:ADDHLD 阶段的持续时间 = 1 × HCLK 时钟周期

0010:ADDHLD 阶段的持续时间 = 2 × HCLK 时钟周期

...

1111:ADDHLD 阶段的持续时间 = 15 × HCLK 时钟周期(复位后的默认值)

有关每种访问模式地址保持阶段持续时间的信息,请参见相应图片(

465 到

468)。

注意:在同步访问模式下,该值不使用,因为地址保持阶段的持续时间始终是

1

个存储器时钟

周期。

位 3:0 ADDSET:地址设置阶段的持续时间 (Address tup pha duration)

通过软件写入这些位可定义地址设置阶段的持续时间(请参见

456 到

468),适用于

SRAM、ROM 和异步 NOR Flash 访问模式:

0000:ADDSET 阶段的持续时间 = 0 × HCLK 时钟周期

...

1111:ADDSET 阶段的持续时间 = 15 × HCLK 时钟周期(复位后的默认值)

有关每种访问模式地址设置阶段持续时间的信息,请参见相应图片(请参见

456 到

468)。

注意:在同步访问模式下,该值为无关值。

复用模式或模式

D

下,

ADDSET

的最小值为

1

注意:

PSRAM (CRAM)

由于内部刷新而导致数据延时时间长度不确定。因此,这些存储器会在整个

延迟阶段发送

NWAIT

信号,以便按照需要延长延迟。

对于

PSRAM (CRAM)

,字段

DATLAT

必须设置为

0

,这样

FMC

会立即退出延迟阶段,开始

对存储器中的

NWAIT

采样,然后在存储器准备就绪后开始读取或写入。

此方法也适用于最新一代的同步

Flash

,同早期

Flash

不同的是,此类

Flash

会发送

NWAIT

信号(检查所用的具体

Flash

数据表)。

1622/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

SRAM/NOR-Flash 写入时序寄存器 1..4 (FMC_BWTR1..4)

SRAM/NOR-Flash write timing registers 1..4

偏移地址:0x104 + 8 * (x – 1),x = 1...4

复位值:0x0FFF FFFF

此寄存器包含每个存储区域的控制信息, 用于 SRAM、PSRAM 和 NOR Flash。当 FMC_BCRx

寄存器中的 EXTMOD 位置 1 时,该寄存器将处于有效状态,可以进行写入访问。

313121110

B

U

S

T

U

R

N

A

C

C

M

O

D

R

e

s

e

r

v

e

d

R

e

s

e

r

v

e

d

D

A

T

A

S

T

9876

A

D

D

H

L

D

5432

A

D

D

S

E

T

10

rwrw

rwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrwrw

位 31:30 保留,必须保持复位值

位 29:28 ACCMOD:访问模式 (Access mode)。

指定异步访问模式,如下一个时序图所示。仅当 FMC_BCRx 寄存器中的 EXTMOD 位置 1 时,这

些位才有效。

00:访问模式 A

01:访问模式 B

10:访问模式 C

11:访问模式 D

位 27:20 保留,必须保持复位值

位 19:16 BUSTURN:总线周转阶段的持续时间 (Bus turnaround pha duration)

通过软件写入这些位可在写入事务结束时增加一个延迟,进而匹配两个连续事务之间的最小时间

(t

EHEL

由 ENx 高电平变为 ENx 低电平):

(BUSTRUN + 1) HCLK 周期  t

EHELmin

0000:BUSTURN 阶段的持续时间 = 增加 0 个 HCLK 时钟周期

...

1111:BUSTURN 阶段的持续时间 = 增加 15 个 HCLK 时钟周期(复位后的默认值)

位 15:8 DATAST:数据阶段的持续时间 (Data-pha duration)。

通过软件写入这些位可定义数据阶段的持续时间(请参见

456 到

468),适用于异步 SRAM、

PSRAM 和 NOR Flash 访问模式:

0000 0000:保留

0000 0001:DATAST 阶段的持续时间 = 1 × HCLK 时钟周期

0000 0010:DATAST 阶段的持续时间 = 2 × HCLK 时钟周期

...

1111 1111:DATAST 阶段的持续时间 = 255 × HCLK 时钟周期(复位后的默认值)

位 7:4 ADDHLD:地址保持阶段的持续时间 (Address-hold pha duration)。

通过软件写入这些位可定义

地址保持

阶段的持续时间(请参见

465 到

468),适用于异步复用

访问:

0000:保留

0001:ADDHLD 阶段的持续时间 = 1 × HCLK 时钟周期

0010:ADDHLD 阶段的持续时间 = 2 × HCLK 时钟周期

...

1111:ADDHLD 阶段的持续时间 = 15 × HCLK 时钟周期(复位后的默认值)

注意:在同步 NOR Flash 访问模式下,该值不使用,因为地址保持阶段的持续时间始终是 1 个 Flash

时钟周期。

文档 ID 018909 第 7 版1623/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

位 3:0 ADDSET:地址建立阶段的持续时间 (Address tup pha duration)。

通过软件写入这些位可定义以 HCLK 周期表示的

地址建立

阶段持续时间(请参见

465 到

468),适用于异步访问模式:

0000:ADDSET 阶段的持续时间 = 0 × HCLK 时钟周期

...

1111:ADDSET 阶段的持续时间 = 15 × HCLK 时钟周期(复位后的默认值)

注意:在同步访问模式下,该值不使用,因为地址建立阶段的持续时间始终是

1

Flash

时钟周期。

复用模式下,

ADDSET

的最小值为

1

37.6 NAND Flash/PC 卡控制器

FMC 会生成相应的信号时序,用于驱动以下类型的设备:

8 位和 16 位 NAND Flash

16 位 PC 卡兼容设备

存储区域 2 和存储区域 3 支持 NAND Flash 设备

存储区域 4 支持 PC 卡设备。

NAND Flash/PC 卡控制器可以控制三个外部存储区域,即存储区域 2、3 和 4:

每个存储区域都通过专用的寄存器配置(

37.6.8

)。可编程的存储器参数包括访问时序

(如

282 所示)和 ECC 配置。

表 282. 可编程的 NAND/PC 卡访问参数

参数功能

命令使能前地址建立所需时钟周

期 (HCLK) 数

命令使能的最小持续时间

(按 HCLK 时钟周期计)

命令禁止后,必须保持地址

(如果进行了写访问还需保持数

据)的时钟周期 (HCLK) 数

开始进行写访问后,数据总线

保持高阻状态期间的时钟

周期 (HCLK) 数

访问模式

读/写

读/写

单位

AHB 时钟周期

(HCLK)

AHB 时钟周期

(HCLK)

AHB 时钟周期

(HCLK)

AHB 时钟周期

(HCLK)

最小值 最大值

1 256

2256

存储器建立时间

存储器等待

存储器保持 读/写

1 255

存储器数据总线

高阻态

0 255

1624/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.6.1

注意:

外部存储器接口信号

下表列出了通常用于连接

NAND Flash

PC

卡的信号。

前缀“

N

”标识低电平有效的信号。

8 位 NAND Flash

t

表 283. 8 位 NAND Flash

FMC 信号名称

I/O

功能

A[17] O

NAND Flash 地址锁存使能 (ALE) 信号

A[16] O

NAND Flash 命令锁存使能 (CLE) 信号

D[7:0] I/O

8 位复用双向地址/数据总线

NCE[x]

NOE(= NRE)

NWE

NWAIT/INT[3:2]

O

O

O

I

片选,x = 2、3

输出使能(存储器信号名称:读取使能,NRE)

写入使能

输入 FMC 的 NAND Flash 就绪/繁忙信号

由于 FMC 能够管理足够多的地址周期,因此理论上不存在容量限制。

16 位 NAND Flash

表 284. 16 位 NAND Flash

FMC 信号名称

A[17]

I/O

O

功能

NAND Flash 地址锁存使能 (ALE) 信号

A[16] O

NAND Flash 命令锁存使能 (CLE) 信号

D[15:0] I/O

16 位复用双向地址/数据总线

NCE[x]

NOE(= NRE)

NWE

NWAIT/INT[3:2]

O

O

O

I

片选,x = 2、3

输出使能(存储器信号名称:读取使能,NRE)

写入使能

输入 FMC 的 NAND Flash 就绪/繁忙信号

由于

FMC

能够管理足够多的地址周期,因此理论上不存在容量限制。

表 285. 16 位 PC 卡

FMC 信号名称

A[10:0]

NIORD

NIOWR

NREG

D[15:0]

NCE4_1

I/O

O

O

O

O

I/O

O

地址总线

I/O 空间的输出使能

I/O 空间的写入使能

指示在通用空间还是特性空间进行访问的寄存器信号

双向数据总线

片选 1

功能

文档 ID 018909 第 7 版1625/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

表 285. 16 位 PC 卡(续)

FMC 信号名称

NCE4_2

NOE

NWE

NWAIT

INTR

CD

I/O

O

O

O

I

I

I

功能

片选 2(指示访问为 16 位还是 8 位)

通用空间和特性空间的输出使能

通用空间和特性空间的写入使能

输入 FMC 的 PC 卡等待信号(存储器信号名称为 IORDY)

RM0090

输入 FMC 的 PC 卡中断信号(仅适用于能够生成中断的 PC 卡)

PC 卡存在检测。高电平有效。如果 CD 处于低电平时对 PC 卡存储

区域执行访问,会生成 AHB 错误。请参见

37.3

节:

AHB

接口

37.6.2 NAND Flash/PC 卡支持的存储器和事务

286

介绍了所支持的设备、访问模式和事务。

NAND Flash/PC

卡控制器不允许(或不支持)

的事务以灰色显示。

表 286. 支持的存储器和事务

设备

异步

异步

8 位 NAND

异步

异步

异步

异步

异步

异步

模式

R/W

AHB 数

据大小

存储器

数据大小

8

8

8

8

8

8

16

16

16

16

16

16

是否允许

分为 2 次 FMC 访问

分为 2 次 FMC 访问

分为 2 次 FMC 访问

分为 2 次 FMC 访问

分为 4 次 FMC 访问

分为 4 次 FMC 访问

注释

R 8

W 8

R 16

W 16

R 32

W 32

R 8

W 8

16 位 NAND

异步

异步

异步

异步

R 16

W 16

R 32

W 32

1626/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.6.3 NAND Flash 和 PC 卡的时序图

每个 PC 卡/CF 卡和 NAND Flash 存储区域均通过以下一组寄存器进行管理:

控制寄存器:FMC_PCRx

中断状态寄存器:FMC_SRx

ECC 寄存器:FMC_ECCRx

通用存储器空间的时序寄存器:FMC_PMEMx

特性存储器空间的时序寄存器:FMC_PATTx

I/O 空间的时序寄存器:FMC_PIOx

每个时序配置寄存器包含四个参数,其中三个参数用于定义 PC 卡/CF 卡或 NAND Flash 的

三个访问阶段的 HCLK 周期数,另一个参数用于定义进行写访问时开始驱动数据总线的时

序。

474 介绍了通用存储器访问的时序参数定义,特性存储器空间和 I/O(仅适用于 PC

卡)存储器空间的访问时序与此类似。

图 474. NAND Flash/PC 卡控制器的通用存储器访问波形

+&/.

$>󰀕󰀘󰀝󰀓@

1&([

15(*ǃ

1,2:󰀃󰩠󰀃

1,25

1:(󰀃󰩠󰀃

󰀋󰀔󰀌

12(

ZULWHBGDWD

UHDGBGDWD

󱳝󱬜

06󰀖󰀖󰀚󰀖󰀖9󰀔

催⬉󱑇

0(0[6(7

󰀃󰀎󰀃󰀔

0(0[+,=

0(0[:$,7󰀃󰀎󰀃󰀔

0(0[+2/'󰀃

1.进行写访问期间 NOE 保持高电平(无效)。进行读访问期间 NWE 保持高电平(无效)。

文档 ID 018909 第 7 版1627/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

37.6.4 NAND Flash 操作

NAND Flash 设备的命令锁存使能 (CLE) 信号和地址锁存使能 (ALE) 信号由 FMC 控制器的

地址信号驱动。这意味着要向 NAND Flash 发送命令或地址,CPU 必须对其存储器空间中的

特定地址执行写操作。

从 NAND Flash 设备进行的典型页读取操作需要执行以下步骤:

3. 根据 NAND Flash 的特性(PWID 位指示 NAND Flash 数据总线宽度,PTYP = 1,根据

需要 PWAITEN = 0 或 1;有关时序配置,请参见

37.4.2

节:

NAND Flash/PC

卡地址

映射

),配置 FMC_PCRx 和 FMC_PMEMx(对于某些设备,配置 FMC_PATTx,请参

37.6.5

节:

NAND Flash

预等待功能

)寄存器,进而配置和使能相应的存储区域。

4. CPU 向通用存储器空间执行字节写操作,此时数据字节等于一个 Flash 命令字节(例如

Samsung NAND Flash 设备的字节为 0x00)。在写入选通期间(NWE 上为低电平脉

冲),NAND Flash 的 LE 输入有效,因此将已写入的字节视为 NAND Flash 的一个命

令。该命令由存储器设备锁存后,随后进行页读取操作时,不需要再次写入该命令。

5. 通过在通用存储器空间或特性空间写入 STARTAD[7:0]、STARTAD[16:9]、STARTAD[24:17]

以及 STARTAD[25](针对 64 Mb x 8 位的 NAND Flash)这 4 个字节(对于容量较小

的设备写入 3 个字节),CPU 能够发送读操作的起始地址 (STARTAD)。在写入选通期间

(NWE 上为低电平脉冲),NAND Flash 设备的 ALE 输入有效,因此将已写入的字节视

为读操作的起始地址。借助特性存储器空间,可使用 FMC 的另一种不同时序配置,实现

某些 NAND Flash 所需的预等待功能(有关详细信息,请参见

37.6.5

节:

NAND Flash

预等待功能

)。

控制器在对同一个或另一个存储区域进行新访问之前,等待 NAND Flash 准备好(R/NB

信号处于高电平)。等待期间,控制器保持 NCE 信号有效(低电平)。

然后 CPU 能够从通用存储器空间执行字节读操作,进而按字节读取 NAND Flash 页(数

据字段 + 备用字段)。

可读取下一个 NAND Flash 页,而无需任何 CPU 命令或地址写操作。可采用以下三种不

同的方式实现:

执行步骤 5 中介绍的操作

通过重新开始步骤 3 中的操作随机访问一个新地址

通过重新开始步骤 2 向 NAND Flash 设备发送新命令

6.

7.

8.

1628/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.6.5 NAND Flash 预等待功能

一些 NAND Flash 设备需要在写入地址的最后一部分后,控制器等待 R/NB 信号变为低电

平。(见

455)。

图 475. 访问非“CE 无关”NAND-Flash

1&(󰀃󱖙乏󰖱󱣕Ԣ⬉󱑇

1&(

&/(

$/(

1:(

催⬉󱑇

12(

W5

,󰀒2>󰀚󰀝󰀓@

󰀓[󰀓󰀓$󰀚󰀐$󰀓$󰀔󰀙󰀐$󰀜$󰀕󰀗󰀐$󰀔󰀚$󰀕󰀘

W:%

5󰀒1%

󰀋󰀔󰀌󰀋󰀕󰀌󰀋󰀖󰀌󰀋󰀗󰀌󰀋󰀘󰀌

在地址 0x7001 0000 处写入字节 0x00。

在地址 0x7002 0000 处写入字节 A7~A0。

在地址 0x7002 0000 处写入字节 A16~A9。

在地址 0x7002 0000 处写入字节 A24~A17。

在地址 0x7802 0000 处写入字节 A25:FMC 通过 FMC_PATT2 时序定义执行写访问,其中 ATTHOLD  7

(假设 (7+1) × HCLK = 112 ns > t

WB

最大值)。这可确保 NCE 保持低电平,直到 R/NB 再次变为低电平后

变为高电平(只有 NCE 信号对之有作用的 NAND Flash 才需要此功能)。

当需要此功能时,可通过编程 MEMHOLD 值确保满足 t

WB

时序。然而 CPU 对 NAND Flash

进行的所有读或写访问均会经过 (MEMHOLD + 1) 个 HCLK 周期的保持延迟(该延迟插入在

NWE 信号的上升沿与下一访问之间)。

要克服该时序限制,可使用特性存储器空间,将其时序寄存器编程为满足 t

WB

时序的 ATTHOLD

值并将 MEMHOLD 保持为其最小值。然后,CPU 必须使用通用存储器空间进行所有的 NAND

Flash 读和写访问,向 NAND Flash 设备写入最后一个地址字节时除外,此时 CPU 必须对特

性存储器空间执行写操作。

文档 ID 018909 第 7 版1629/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

37.6.6 纠错码 (ECC) 计算 (NAND Flash)

FMC PC 卡控制器包括两个纠错码计算硬件模块,每个存储区域各有一个。这些模块可在软

件处理 ECC 时减少主机 CPU 工作负载。

这两个 ECC 模块相同,分别与存储区域 2 和存储区域 3 相关联。因此,硬件 ECC 计算均不

适用于与存储区域 4 相连的存储器。

对 NAND Flash 执行读取或写入操作时,相应每 256、512、1 024、2 048、4 096 或 8 192

个字节,FMC 中使用的 ECC 算法可修正 1 位错误并且检测出 2 位错误。该操作基于

Hamming 编码算法,并且包括计算行和列奇偶校验。

每当 NAND Flash 存储区域处于激活状态时,ECC 模块均会监视 NAND Flash 数据总线和

读/写信号(NCE 和 NWE)。

ECC 按如下说明操作:

当访问 NAND Flash 存储区域 2 或存储区域 3 时,将锁存 D[15:0] 总线上出现的数据并

将其用于 ECC 计算。

当访问 NAND Flash 中的任何其它地址时,ECC 逻辑会进入空闲状态,不执行任何操作。

因此,进行 ECC 计算时,用于定义 NAND Flash 命令或地址的写操作无效。

主机 CPU 对 NAND Flash 完成所需字节数的读取/写入操作后,必须读取 FMC_ECCR2/3 寄

存器,才能检索计算出的值。读取后,应通过将 ECCEN 位复位为零来将这些寄存器清零。

要计算新的数据块,必须将 FMC_PCR2/3 寄存器中的 ECCEN 位置 1。

要进行 ECC 计算:

1.

2.

3.

4.

5.

6.

使能 FMC_PCR2/3 寄存器中的 ECCEN 位。

将数据写入 NAND Flash 页。在写入 NAND 页期间,ECC 模块将计算 ECC 值。

读取 FMC_ECCR2/3 寄存器中所提供的 ECC 值,并将其存储到变量。

将 FMC_PCR2/3 寄存器中的 ECCEN 位清零后使能,然后从 NAND 页回读写入的数据。

在读取 NAND 页期间,ECC 模块将计算 ECC 值。

读取 FMC_ECCR2/3 寄存器中所提供的新 ECC 值。

如果两次读取的 ECC 值相同,则无需校正,否则说明存在 ECC 错误,并且软件校正例

程将返回有关该错误是否能够得到校正的信息。

1630/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.6.7 PC 卡/CF 卡操作

地址空间和存储器访问

FMC 支持存储器模式和 I/O 模式下的 CF 卡设备和 PC 卡(不支持真正的 IDE 模式)。

CF 卡和 PC 卡由以下 3 个存储器空间组成:

通用存储器空间

特性空间

I/O 存储器空间

nCE2 和 nCE1 引脚(分别是 FMC_NCE4_2 和 FMC_NCE4_1) 用于选卡,指示正在执行

字节操作还是字操作:nCE2 访问 D15-8 上的奇数字节;nCE1 访问 D7-0 上的偶数字节

(A0=0 时)或 D7-0 上的奇数字节(A0=1 时)。如果 nCE2 和 nCE1 均处于低电平,则访

问 D15-0 上的全字。

在读访问时将 nOE 置为低电平或写访问时将 nWE 置为低电平(同时将 nCE2/nCE1 和

nREG 置为低电平),可选择存储器空间。

如果存储器访问期间引脚 nREG=1,则选择通用存储器空间

如果存储器访问期间引脚 nREG=0,则选择特性存储器空间

在读访问时使能 nIORD 空间或写访问时使能 nIOWR [而非选择存储器空间时的 nOE/nWE],

同时使能 nCE2/nCE1,可选择 I/O 空间。请注意,访问 I/O 空间时,还必须使能 nREG。

对于 16 位 PC 卡,允许三种类型的访问。

对通用存储器空间的访问(以进行数据存储)可以是偶地址上的 8 位访问,也可以是 AHB

地址上的 16 位访问。

请注意,不支持在奇地址上进行 8 位访问,该访问也不会将 nCE2 置为低电平。32 位

AHB 请求会转换为 2 个 16 位存储器访问。

对特性存储空间进行的访问(此时 PC 卡存储配置信息)必须是偶地址上的 8 位 AHB

访问。

请注意,16 位 AHB 访问将转换为一个 8 位存储器传输:nCE1 将置为低电平,NCE2

将置为高电平,并且仅 D7-D0 上的偶数字节有效。32 位 AHB 访问将转换为偶地址上

的两个 8 位存储器传输:nCE1 将置为低电平,NCE2 将置为高电平,并且仅偶数字节

有效。

可通过 8 位或 16 位 AHB 访问对 I/O 空间进行访问。

文档 ID 018909 第 7 版1631/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

RM0090

表 287. 16 位 PC 卡信号和访问类型

n

I

O

R

D

/

n

I

O

W

R

n

O

E

/

n

W

E

n

R

E

G

n

C

E

2

n

C

E

1

A

7

-

1

A

1

0

A

0

A

9

空间 访问类型是否允许

1

0

0

X

X

1

0

1

1

1

1

0

0

0

0

0

1

0

0

0

0

1

0

0

0

0

0

0

1

1

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

0

0

0

0

0

0

0

0

X

X

X

0

0

X

X

X

X

X

X

X

X

X

X

X

X

X

1

0

X

X

X

X

X

X

X

X

X

X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X-X

X

X

0

0

0

1

x

0

1

0

1

0

0

X

X

I/O 空间

特性空间

特性空间

通用存储器

空间

读/写 D7-D0 上的字节

读/写 D15-D8 上的字节

读/写 D15-D0 上的字节

读取或写入配置寄存器

读取或写入 CIS(卡信息结构)

无效读取或写入(奇地址)

无效读取或写入(奇地址)

读取 D7-0 上的偶数字节

读取 D7-0 上的奇数字节

写入 D7-0 上的偶数字节

写入 D7-0 上的奇数字节

读取 D15-0 上的字

写入 D15-0 上的字

读取 D15-8 上的奇数字节

写入 D15-8 上的奇数字节

37.4.2

节:

NAND Flash/PC

卡地址映射

249

NAND/PC

卡存储映射和时序寄存器

所述,通过 FMC 存储区域 4 可访问相关的 3 个存储空间。

等待特性

如果通过 FMC_PCRx 寄存器中的 PWAITEN 位使能了等待特性,则 CF 卡或 PC 卡可能会请

求 FMC 延长通过 MEMWAITx/ATTWAITx/IOWAITx 位配置的访问阶段的长度,并在激活

nOE/nWE 或 nIORD/nIOWR 后使能 nWAIT 信号。为正确检测 nWAIT 使能情况,必须按如下

方式编程 MEMWAITx/ATTWAITx/IOWAITx 位:

max_wait_asrtion_time

xxWAITx4+-------------------------------------------------------------------

HCLK

其中 max_wait_asrtion_time 是在 nOE/nWE 或 nIORD/nIOWR 变为低电平后 NWAIT

变为低电平所花费的最长时间。

禁止 nWAIT 后,FMC 会延长等待阶段 4 个 HCLK 时钟周期。

1632/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.6.8 NAND Flash/PC 卡控制寄存器

PC 卡/NAND Flash 控制寄存器 2..4 (FMC_PCR2..4)

PC Card/NAND Flash control registers 2..4

偏移地址:0x40 + 0x20 * (x – 1),x = 2..4

复位值:0x0000 0018

313121110

ECCPS

rw

9876

E

C

C

E

N

543

P

T

Y

P

2

P

B

K

E

N

1

P

W

A

I

T

E

N

rw

0

R

e

s

e

r

v

e

d

Rerved

TAR

rwrwrwrwrw

TCLR

rwrwrw

Res.

PWID

rwrwrwrwrwrwrw

位 31:20 保留,必须保持复位值

位 19:17 ECCPS:ECC 页大小 (ECC page size)。

定义扩展 ECC 的页大小:

000:256 字节

001:512 字节

010:1024 字节

011:2048 字节

100:4096 字节

101:8192 字节

位 16:13 TAR:ALE 到 RE 的延迟 (ALE to RE delay)。

以 AHB 时钟周期数 (HCLK) 设置从 ALE 低电平到 RE 低电平的时间。

时间是 t_ar = (TAR + SET + 2) × THCLK,其中 THCLK 是 HCLK 时钟周期

0000:1 个 HCLK 周期(默认)

1111:16 个 HCLK 周期

注意:根据寻址空间,

SET

MEMSET

ATTSET

位 12:9 TCLR:CLE 到 RE 的延迟 (CLE to RE delay)。

以 AHB 时钟周期数 (HCLK) 设置从 CLE 低电平到 RE 低电平的时间。

时间是 t_clr = (TCLR + SET + 2) × THCLK,其中 THCLK 是 HCLK 时钟周期

0000:1 个 HCLK 周期(默认)

1111:16 个 HCLK 周期

注意:根据寻址空间,

SET

MEMSET

ATTSET

位 8:7 保留,必须保持复位值

位 6 ECCEN:ECC 计算逻辑使能位 (ECC computation logic enable bit)

0:禁止和复位 ECC 逻辑(复位后为默认值),

1:使能 ECC 逻辑。

位 5:4 PWID:数据总线宽度 (Data bus width)。

定义外部存储器设备宽度。

00:8 位

01:16 位(复位后的默认值)。必须为 PC 卡定义该值。

10:保留,不使用

11:保留,不使用

文档 ID 018909 第 7 版1633/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

位 3 PTYP:存储器类型 (Memory type)。

定义附加到相应存储区域的设备的类型:

0:PC 卡、CF 卡、CF+ 或 PCMCIA

1:NAND Flash(复位后为默认值)

位 2 PBKEN:PC 卡/NAND Flash 存储区域使能位 (PC Card/NAND Flash memory bank enable bit)。

使能存储区域。访问禁止的存储区域会引起 AHB 总线上的错误

0:禁止相应的存储区域(复位后为默认值)

1:使能相应的存储区域

位 1 PWAITEN:等待特性使能位 (Wait feature enable bit)。

使能 PC 卡/NAND Flash 存储区域的等待特性:

0:禁用

1:使能

注意:对于

PC

卡,使能等待特性时,必须按如下方式对

MEMWAITx/ATTWAITx/IOWAITx

进行配置:

xxWAITx

4 + max_wait_asrtion_time/HCLK

其中

max_wait_asrtion_time

是在

nOE/nWE

nIORD/nIOWR

变为低电平后

NWAIT

变为低电平所花费的最长时间。

位 0 保留。

FIFO 状态和中断寄存器 2..4 (FMC_SR2..4)

FIFO status and interrupt register 2..4

偏移地址:0x44 + 0x20 * (x-1),x = 2..4

复位值:0x0000 0040

该寄存器包含有关 FIFO 状态和中断的信息。FMC 具有一个 FIFO,当向存储器执行写入操

作以传输来自 AHB 的多达 16 字的数据时,使用该 FIFO。

当 FMC 将其 FIFO 的内容移入存储器时,此寄存器用于快速写入 FIFO,然后释放 AHB 供

FMC 以外的外设的事务使用。这些寄存器位中有一位用来指示 FIFO 的状态,供 ECC 使用。

在将数据写入存储器时计算 ECC。因此,为了读取正确的 ECC,软件必须等到 FIFO 为空。

36

F

E

M

P

T

5

I

F

E

N

4

I

L

E

N

3

I

R

E

N

2

I

F

S

1

I

L

S

rw

0

I

R

S

rw

Rerved

r

rwrwrwrw

位 31:7 保留,必须保持复位值

位 6 FEMPT:FIFO 为空 (FIFO empty)。

该位是提供 FIFO 状态的只读位

0:FIFO 非空

1:FIFO 为空

位 5 IFEN:中断下降沿检测使能位 (Interrupt falling edge detection enable bit)

0:中断下降沿检测请求禁止

1:中断下降沿检测请求使能

位 4 ILEN:中断高电平检测使能位 (Interrupt high-level detection enable bit)

0:中断高电平检测请求禁止

1:中断高电平检测请求使能

1634/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

位 3 IREN:中断上升沿检测使能位 (Interrupt rising edge detection enable bit)

0:中断上升沿检测请求禁止

1:中断上升沿检测请求使能

位 2 IFS:中断下降沿状态 (Interrupt falling edge status)

此标志由硬件置 1,由软件复位。

0:未出现中断下降沿

1:出现中断下降沿

位 1 ILS:中断高电平状态 (Interrupt high-level status)

此标志由硬件置 1,由软件复位。

0:未出现中断高电平

1:出现中断高电平

位 0 IRS:中断上升沿状态 (Interrupt rising edge status)

此标志由硬件置 1,由软件复位。

0:未出现中断上升沿

1:出现中断上升沿

通用存储器空间时序寄存器 2..4 (FMC_PMEM2..4)

Common memory space timing register 2..4

偏移地址:地址:0x48 + 0x20 * (x – 1),x = 2..4

复位值:0xFCFC FCFC

每个 FMC_PMEMx (x = 2..4) 读/写寄存器都包含 PC 卡或 NAND Flash 存储区域 x 的时序信

息。该信息用于访问 16 位 PC 卡/CF 卡的通用存储空间,或者访问 NAND Flash 来实现命

令、地址写访问和数据读/写访问。

313121110

MEMHIZx

rwrwrwrwrw

9876543210

MEMHOLDx

rwrwrwrwrwrwrwrwrwrwrwrwrw

MEMWAITx

rwrwrwrwrwrwrwrwrw

MEMSETx

rwrwrwrwrw

位 31-24 MEMHIZx:通用存储器 x 数据总线高阻态时间 (Common memory x databus Hi-Z time)

定义在存储区 x 上对 PC 卡/NAND Flash 的通用存储空间开始执行写访问之后,数据总线保

持高阻态所持续的 HCLK 时钟周期数。仅对写入事务有效:

0000 0000:(0x00) 0 个 HCLK 周期(对于 PC 卡)/1 个 HCLK 周期(对于 NAND Flash)

1111 1111:(0xFF) 255 个 HCLK 周期(对于 PC 卡)/256 个 HCLK 周期(对于 NAND

Flash)

位 23:16 MEMHOLDx:通用存储器 x 保持时间 (Common memory x hold time)

针对在存储区 x 上对 PC 卡/NAND Flash 的通用存储空间执行的读或写访问,定义禁止命令

(NWE、NOE)之后保持地址(和写访问数据)的 HCLK 时钟周期数:

0000 0000:保留

0000 0001:1 个 HCLK 周期

1111 1111:255 个 HCLK 周期

文档 ID 018909 第 7 版1635/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

位 15:8 MEMWAITx:通用存储器 x 等待时间 (Common memory x wait time)

针对在存储区 x 上对 PC 卡/NAND Flash 的通用存储空间执行的读或写访问,定义使能命令

(NWE、NOE)所需的 HCLK (+1) 时钟周期数最小值。如果等待信号 (NWAIT) 在编程的

HCLK 值末尾处有效(低电平),则命令使能的持续时间将延长。

0000 0000:保留

0000 0001:2 个 HCLK 周期(+ 禁止 NWAIT 时引入的等待周期)

1111 1111:256 个 HCLK 周期(+ 卡禁止 NWAIT 时引入的等待周期)

位 7:0 MEMSETx:通用存储器 x 建立时间 (Common memory x tup time)

针对在存储区 x 上对 PC 卡/NAND Flash 的通用存储空间执行的读或写访问,定义使能命令

(NWE,NOE)前建立地址所需的 HCLK (+1) 时钟周期数:

0000 0000:1 个 HCLK 周期(对于 PC 卡)/HCLK 周期(对于 NAND Flash)

1111 1111:256 个 HCLK 周期(对于 PC 卡)/257 个 HCLK 周期(对于 NAND Flash)

特性存储器空间时序寄存器 2..4 (FMC_PATT2..4)

Attribute memory space timing registers 2..4

偏移地址:0x4C + 0x20 * (x – 1),x = 2..4

复位值:0xFCFC FCFC

每个 FMC_PATTx (x = 2..4) 读/写寄存器都包含 PC 卡/CF 卡或 NAND Flash 存储区域 x 的

时序信息。该寄存器用于对 PC 卡/CF 卡的特性存储空间的 8 位访问,或在最后一次地址写

访问必须与先前访问的时序不同的情况下,访问 NAND Flash 来实现最后一次地址写访问

(有关就绪/繁忙管理的信息,请参见

37.6.5

节:

NAND Flash

预等待功能

)。

313121110

ATTHIZx

rwrwrwrwrw

9876543210

ATTHOLDx

rwrwrwrwrwrwrwrwrwrwrwrwrwrw

ATTWAITx

rwrwrwrwrwrwrwrw

ATTSETx

rwrwrwrwrw

位 31:24 ATTHIZx:特性存储器 x 数据总线高阻态时间 (Attribute memory x databus Hi-Z time)

定义在存储区 x 上对 PC 卡/NAND Flash 的特性存储空间开始执行写访问之后,数据总线保

持高阻态所持续的 HCLK 时钟周期数。仅对写入事务有效:

0000 0000:0 个 HCLK 周期

1111 1111:255 个 HCLK 周期

位 23:16 ATTHOLDx:特性存储器 x 保持时间 (Attribute memory x hold time)

针对在存储区 x 上对 PC 卡/NAND Flash 的特性存储空间执行的读或写访问,定义禁止命令

(NWE、NOE)之后保持地址(和写访问数据)的 HCLK 时钟周期数

0000 0000:保留

0000 0001:1 个 HCLK 周期

1111 1111:255 个 HCLK 周期

1636/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

位 15:8 ATTWAITx:特性存储器 x 等待时间 (Attribute memory x wait time)

针对在存储区 x 上对 PC 卡/NAND Flash 的特性存储空间执行的读或写访问,定义使能命令

(NWE、NOE)所需的 HCLK (+1) 时钟周期数最小值。如果等待信号 (NWAIT) 在编程的

HCLK 值末尾处有效(低电平),则命令使能的持续时间将延长。

0000 0000:保留

0000 0001:2 个 HCLK 周期(+ 禁止 NWAIT 时引入的等待周期)

1111 1111:256 个 HCLK 周期(+ 卡禁止 NWAIT 时引入的等待周期)

位 7:0 ATTSETx:特性存储器 x 建立时间 (Attribute memory x tup time)

针对在存储区 x 上对 PC 卡/NAND Flash 的特性存储空间执行的读或写访问,定义使能命令

(NWE,NOE)前建立地址所需的 HCLK (+1) 时钟周期数:

0000 0000:1 个 HCLK 周期

1111 1111:256 个 HCLK 周期

I/O 空间时序寄存器 4 (FMC_PIO4)

I/O space timing register 4

偏移地址:0xB0

复位值:0xFCFCFCFC

FMC_PIO4 读/写寄存器中包含访问 16 位 PC 卡/CF 卡所需的时序信息。

313121110

IOHIZx

rwrwrwrwrw

9876543210

IOHOLDx

rwrwrwrwrwrwrwrwrwrwrwrwrwrw

IOWAITx

rwrwrwrwrwrwrwrw

IOSETx

rwrwrwrwrw

位 31:24 IOHIZx:I/O x 数据总线高阻态时间 (I/O x data bus Hi-Z time)

定义在存储区 x 上对 PC 卡的 I/O 空间开始执行写访问之后,数据总线保持高阻态所持续的

HCLK 时钟周期数。仅对写入事务有效:

0000 0000:0 个 HCLK 周期

1111 1111:255 个 HCLK 周期

位 23:16 IOHOLDx:I/O x 保持时间 (I/O x hold time)

针对在存储区 x 上对 PC 卡的 I/O 空间执行的读或写访问,定义禁止命令(NWE,NOE)之

后保持地址(和写访问数据)的 HCLK 时钟周期数。

0000 0000:保留

0000 0001:1 个 HCLK 周期

1111 1111:255 个 HCLK 周期

位 15:8 IOWAITx:I/O x 等待时间 (I/O x wait time)

针对在存储区 x 上对 PC 卡的 I/O 空间执行的读或写访问,定义使能命令(SMNWE、

SMNOE)所需的 HCLK (+1) 时钟周期数最小值。如果等待信号 (NWAIT) 在编程的 HCLK 值

末尾处有效(低电平),则命令使能的持续时间将延长。

0000 0000:保留,不使用此值

0000 0001:2 个 HCLK 周期(+ 禁止 NWAIT 时引入的等待周期)

1111 1111:256 个 HCLK 周期(+ 卡禁止 NWAIT 时引入的等待周期)

位 7:0 IOSETx:I/O x 建立时间 (I/O x tup time)

针对在存储区 x 上对 PC 卡的 I/O 空间执行的读或写访问,定义使能命令(NWE,NOE)前

建立地址所需的 HCLK (+1) 时钟周期数:

0000 0000:1 个 HCLK 周期

1111 1111:256 个 HCLK 周期

文档 ID 018909 第 7 版1637/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

ECC 结果寄存器 2/3 (FMC_ECCR2/3)

ECC result registers 2/3

偏移地址:0x54 + 0x20 * (x – 1),x = 2 或 3

复位值:0x0000 0000

这些寄存器中包含由 FMC 控制器的 ECC 计算模块(每个 NAND Flash 存储区域一个模块)

计算所得的当前错误校正代码值。当 CPU 从 NAND Flash 页的正确地址读取数据时(请参

37.6.6

节:纠错码

(ECC)

计算

(NAND Flash)),ECC 计算模块会自动处理读取自/写

入 NAND Flash 的数据。读取 X 个字节后(依据 FMC_PCRx 寄存器的 ECCPS 字段),

CPU 必须从 FMC_ECCx 寄存器读取计算所得的 ECC 值。然后验证这些计算的奇偶校验数

据是否与备用区记录的奇偶校验数据相同,从而确定该页是否有效,如不同则进行校正。

FMC_ECCRx 寄存器被读取后应通过将 ECCEN 位置 0 进行清零。如要计算新的数据块,则

必须将 ECCEN 位置 1。

313121110

ECCx

r

9876543210

位 31:0 ECCx:ECC 结果 (ECC result)

该字段包含由 ECC 计算逻辑计算所得的值。

288 介绍了这些位字段的内容。

表 288. ECC 结果相关位

ECCPS[2:0]

000

001

010

011

100

101

以字节为单位的页大小

256

512

1024

2048

4096

8192

ECC 位

ECC[21:0]

ECC[23:0]

ECC[25:0]

ECC[27:0]

ECC[29:0]

ECC[31:0]

1638/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.7 SDRAM 控制器

37.7.1 SDRAM 控制器主要特性

SDRAM 控制器的主要特性如下:

两个 SDRAM 存储区域,可独立配置

8 位、16 位和 32 位数据总线宽度

13 位地址行,11 位地址列,4 个内部存储区域:4x16Mx32bit (256 MB)、4x16Mx16bit

(128 MB)、4x16Mx8bit (64 MB)

支持字、半字和字节访问

SDRAM 时钟可以是 HCLK/2 或 HCLK/3

自动进行行和存储区域边界管理

多存储区域乒乓访问

可编程时序参数

支持自动刷新操作,可编程刷新速率

自刷新模式

掉电模式

通过软件进行 SDRAM 上电初始化

CAS 延迟 1,2,3

读 FIFO 可缓存,支持 6 行 x 32 位深度(6 x14 位地址标记)

37.7.2 SDRAM 外部存储器接口信号

启动时,必须通过用户应用程序对用于连接 FMC SDRAM 控制器与外部 SDRAM 设备的

SDRAM I/O 引脚进行配置。应用程序未使用的 SDRAM 控制器 I/O 引脚可用于其它用途。

表 289. SDRAM 信号

SDRAM 信号 I/O 类型

SDCLK

SDCKE[1:0]

SDNE[1:0]

A[12:0]

D[31:0]

BA[1:0]

NRAS

NCAS

SDNWE

NBL[3:0]

O

O

O

O

I/O

O

O

O

O

O

说明

SDRAM 时钟

SDCKE0:SDRAM 存储区域 1 时钟使能

SDCKE1:SDRAM 存储区域 2 时钟使能

SDNE0:SDRAM 存储区域 1 芯片使能

SDNE1:SDRAM 存储区域 2 芯片使能

地址

双向数据总线

存储区域地址

行地址选通

列地址选通

写入使能

写访问的输出字节屏蔽

(存储器信号名称:DQM[3:0])

FMC_NBL[3:0]

FMC_A[12:0]

FMC_D[31:0]

FMC_A[15:14]

复用功能

文档 ID 018909 第 7 版1639/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

37.7.3 SDRAM 控制器功能说明

所有 SDRAM 控制器输出(信号、地址和数据)在存储器时钟 (FMC_SDCLK) 的下降沿上

变化。

SDRAM 初始化

初始化序列通过软件进行管理。如果使用了两个存储区域,则必须将 FMC_SDCMR 寄存

器中的目标存储区域位 CTB1 和 CTB2 置 1,同时为存储区域 1 和存储区域 2 生成初始化

序列:

1.

2.

3.

4.

5.

6.

将存储器设备的特性编程到 FMC_SDCRx 寄存器中。SDRAM 时钟频率、RBURST 和

RPIPE 特性必须编程到 FMC_SDCR1 寄存器中。

将存储器设备的时序编程到 FMC_SDTRx 寄存器中。TRP 和 TRC 时序必须编程到

FMC_SDTR1 寄存器中。

将 MODE 位置为“001”并配置 FMC_SDCMR 寄存器中的目标存储区域位(CTB1 和/

或 CTB2)以开始为存储器提供时钟信号(SDCKE 驱动为高电平)。

等待指定延迟周期。典型延迟为 100 s(有关上电后所需延迟的信息,请参见 SDRAM

数据手册)。

将 MODE 位置为“010”并配置 FMC_SDCMR 寄存器中的目标存储区域位(CTB1 和/

或 CTB2)以发送“全部预充电”命令。

将 MODE 位置为“011”并配置 FMC_SDCMR 寄存器中的目标存储区位(CTB1 和/或

CTB2)和连续自动刷新命令 (NRFS) 的数量。请参见 SDRAM 数据手册了解应发出的

自动刷新命令个数。通常为 8 个。

配置 MRD 字段,将 MODE 位置为“100”并配置 FMC_SDCMR 寄存器中的目标存储

区域位(CTB1 和/或 CTB2)以发送“加载模式寄存器”命令并对 SDRAM 设备进行编

程。尤其突发长度 (BL) 必须置“1”且必须选择 CAS 延迟。如果两个 SDRAM 存储区

域的模式寄存器不同,则此步骤必须重复两次,每个存储区域各一次且目标存储区域位

相应置 1。

编程 FMC_SDRTR 寄存器中的刷新速率

刷新速率对应于刷新周期之间的延迟。其值必须与 SDRAM 设备相适应。

7.

8.

在这一阶段,SDRAM 设备已做好接受命令的准备。如果进行 SDRAM 访问期间发生系统复

位,则数据总线仍可能由 SDRAM 设备驱动。因此,必须在复位后重新初始化 SDRAM 设

备,NOR Flash/PSRAM/SRAM 或 NAND Flash/PC 卡控制器才能发送新的访问命令。

注意:如果有两个

SDRAM

设备连接到

FMC

,对命令模式寄存器同时访问这两个器件(加载模式寄

存器命令和自刷新命令)的情况,将按

FMC_SDTR1

寄存器中为

SDRAM

存储器

1

配置的

时序参数(

TMRD

TRAS

TXSR

时序)发出访问命令。

SDRAM 控制器写周期

SDRAM 控制器可接收单次的和突发的写请求,并将其视为单次存储器访问。在这两种情况

下,SDRAM 控制器都会跟踪各存储区域的有效行,以能够对不同的存储区域进行连续的写

访问(多存储区域乒乓访问)。

执行任何写访问前,必须将 FMC_SDCRx 寄存器中的 WP 位清零,禁止 SDRAM 存储区域

的写保护。

1640/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

图 476. 突发写入 SDRAM 访问波形

TRCD = 3

可变存储控制器 (FMC)

SDNE

SDCLK

A[12:0]

Row n Cola

Colb

Colc

Cold

Cole

ColfCog

Colh

Coli

ColjColkColl

NRAS

NCAS

SDNWE

DATA[31:0]

Dna

Dnb

Dnc

DndDne

Dnf

DngDnh

Dni

Dnj

DnkDnl

MS30448V2

SDRAM 控制器始终会检查下一个访问。

如果下一个访问发生在同一行或在其它有效行,则直接执行写操作。

如果下一个访问指向一个无效行,则 SDRAM 控制器将生成预充电命令、激活该新行并

初始化写命令。

SDRAM 控制器读周期

SDRAM 控制器可接收单次的和突发的读请求,并将其视为单次存储器访问。在这两种情况

下,SDRAM 控制器都会跟踪各存储区域的有效行,以能够对不同的存储区域进行连续的读

访问(多存储区域乒乓访问)。

文档 ID 018909 第 7 版1641/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

图 477. 突发读 SDRAM 访问

75&'󰀃 󰀃󰀖

&$6󰀃󱓊䖳󰀃 󰀃󰀕

RM0090

6'1(

6'&/.

$>󰀔󰀕󰀝󰀓@

5RZ󰀃Q󰀃

&ROD

&ROE

󰀃

&ROF

&ROG

&ROH

&ROI

15$6

1&$6

1:(

'$7$>󰀖󰀔󰀝󰀓@

'QD

'QE

'QF

'QG

'QH

'QI

06󰀖󰀓󰀗󰀗󰀜9󰀕

FMC SDRAM 控制器具有可缓存的读 FIFO(6 行 x 32 位), 用于存储在 CAS 延迟周期

(最多 3 个存储器时钟周期,在 FMC_SDCRx 中配置)和 RPIPE 延迟(最多 2 个 HCLK 时

钟周期,在 FMC_SDCR1 中配置)期间提前读取的数据。必须将 FMC_SDCR1 寄存器中的

RBURST 位置 1 才能接受下一个读访问。

示例:

CAS=3,SDCLK= HCLK/2,RPIPE= 2xHCLK。这种情况下,FIFO 中将存储 4 个未提

交的数据(CAS 延迟期间读取的 3 个数据和 RPIPE 延迟期间读取的 1 个数据)

读 FIFO 的每行都具有 14 位地址标记用于标识自身内容:11 位用于表示列地址,2 位用于

表示选择内部存储区域和有效行,1 位用于选择 SDRAM 设备

在 AHB 突发读取期间,如果提前到达行末尾,则提前读取的数据(未提交)不存储到读

FIFO。对于单次读访问,数据将正确存储到读 FIFO。

每当出现读请求时,SDRAM 控制器将检查:

地址与地址标记之一是否匹配,如果找到匹配,则直接从 FIFO 读取数据并清空相应地

址标记/行内容,同时压缩 FIFO 中的剩余数据以避免空行。

否则,向存储器发送新的读命令并用新数据更新 FIFO。如果 FIFO 已满,则较早的数据

将丢失。

1642/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

图 478. RBURST 位置 1 时的读访问逻辑图(CAS=2,RPIPE=0)

㄀󰀃󰀔󰀃⃵䇏󰦪䆓䯂˖䇋∖ⱘ󱭄󱥂ϡ󰳼󰀃),)2󰀃Ё

)0&󰀃6'5$0󰀃󱥻󰠊󰰼

䇏䇋∖#󰀓[󰀓󰀓

󱭄󱥂󰀃󰀔

6'5$0

󰰼ӊ

󰀋&$6󰀃 󰀃󰀕󰀌󰀃

$+%󰀃Џ󰰼ӊ

󰀙󰀃㸠󰀃),)2

#󰀓[󰀓󰀗󱭄󱥂󰀃󰀕

#󰀓[󰀓󰀛󱭄󱥂󰀃󰀖

󰀑󰀑󰀑

󰀑󰀑󰀑

䰘󰡴󰦬䞣䇏󰦪󰀃),)2

󱭄󱥂󰳼

󰀃&$6󰀃󰀃

󱓊䖳󰨼󱳳󰝙󱦤󰠡

󰀃

󱄬󰙼󰠄

󰀃),)2

㄀󰀃󰀕󰀃⃵䇏䆓䯂˖䇋∖ⱘ󱭄󱥂П󰠡󱏆󱄬󰙼󰠄󰀃),)2󰀃Ё

󰴄󰴔Ϣ󰝊ЁϔϾ󰴄󰴔󰦬䞣󰤍䜡

)0&󰀃6'5$0󰀃󱥻󰠊󰰼

䇏䇋∖#󰀓[󰀓󰀗

󱭄󱥂󰀃󰀕

6'5$0

󰰼ӊ

󰀋&$6󰀃 󰀃󰀕󰀌󰀃

$+%󰀃Џ󰰼ӊ

󰀙󰀃㸠󰀃),)2

#󰀓[󰀓󰀗󱭄󱥂󰀃󰀕

#󰀓[󰀓󰀛󱭄󱥂󰀃󰀖

󰀑󰀑󰀑

󰀑󰀑󰀑

䰘󰡴󰦬䞣䇏󰦪󰀃),)2

䰘󰡴󰦬䞣䇏󰦪󰀃),)2

06󰀖󰀓󰀗󰀗󰀘9󰀔

读访问或预充电命令期间,读 FIFO 将刷新并做好填充新数据的准备。

接到第一个读请求后,如果当前访问还未进行到行边界,则 SDRAM 控制器将在 CAS 延迟

周期和 RPIPE 延迟(如果已配置)期间接受下一个读访问。这将通过递增存储器地址来实

现。必须满足以下条件:

FMC_SDCR1 寄存器中的 RBURST 控制位必须置“1”。

文档 ID 018909 第 7 版1643/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

地址管理取决于下一个 AHB 请求:

下一个 AHB 请求是连续的(AHB 突发)

这种情况下,SDRAM 控制器将递增地址。

下一个 AHB 请求不连续

RM0090

如果新的读请求指向与上一请求相同的行或另一个有效行,则新地址将传送给存储

器,同时主设备在 CAS 延迟周期停止工作,等待从存储器获取新数据。

如果新的读请求指向无效行,则 SDRAM 控制器生成预充电命令、激活该新行并初

始化读命令。

如果 RURST 位置 0,则不使用读 FIFO。

行和存储区域边界管理

当读/写访问跨越了行边界时,如果下一个读/写访问是连续的并且当前访问已执行到行边

界,则 SDRAM 控制器将执行以下操作:

1.

2.

3.

对有效行进行预充电,

激活新行

启动读/写命令。

对于各种列和数据总线宽度配置,都支持在行边界自动激活下一行。

SDRAM 控制器可根据需要在以下命令之间插入附加时钟周期:

在预充电和激活命令之间插入以匹配 TRP 参数(仅当下一个访问指向同一存储区域中

的其它行时),

在激活和读命令之间插入以匹配 TRCD 参数。

这些参数在 FMC_SDTRx 寄存器中定义。

有关跨越行边界读取和突发写访问的信息,请参见

479 和

480。

1644/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

图 479. 跨行边界的读访问

753󰀃 󰀃󰀖75&'󰀃 󰀃󰀖

可变存储控制器 (FMC)

&$6󰀃󱓊䖳󰀃 󰀃󰀕

6'1(

6'&/.

$>󰀔󰀕󰀝󰀓@

5RZ󰀃Q

&RO󰀃D5RZ󰀃Q󰀃󰀎󰀔

&RO󰀃D

&RO󰀃E

15$6

1&$6

1:(

'DWD>󰀖󰀔󰀝󰀓@

'QD

乘󰜙⬉

▔⌏㸠

䇏󰩑Ҹ

'Q󰀎󰀔󰀃D

06󰀖󰀓󰀗󰀗󰀙9󰀕

图 480. 跨行边界的写访问

TRP = 3

TRCD = 3

SDNE

SDCLK

A[12:0]

CnaColbRow n+1Cola

Colb

NRAS

NCAS

NWE

Data[31:0]

Dna

Dnb

乘󰜙⬉

▔⌏㸠

Dn+1a

Dn+1b

䇏󰩑Ҹ

MS30447V2

文档 ID 018909 第 7 版1645/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

如果下一个访问是连续的并且当前访问跨越了存储区域边界,则 SDRAM 控制器将激活下一

个存储区域的第一个行并发出新的读/写命令。可能存在以下两种情况:

如果当前存储区域不是最后一个存储区域,则必须对新存储区域中的激活行进行预充

电。对于各种列和数据总线宽度配置,都支持在存储区域边界自动激活下一行。

对于 13 位行地址、11 位列地址、4 个内部存储区域和总线宽度为 32 位的 SDRAM 存

储器,如果当前存储器是最后一个存储器且所选 SDRAM 设备与存储区域 1 相连,则

SDRAM 控制器将通过第二个 SDRAM 设备继续进行读/写操作(假设第二个 SDRAM

设备已初始化):

a) SDRAM 控制器将激活第一行(在对有效行预充电之后,假设第一个内部存储区域中

存在有效行)并发出新的读/写命令。

b) 如果第一行已激活,则 SDRAM 控制器将仅发出读/写命令。

注意:如果当前存储区域是最后一个存储区域,则仅在对

13

位行、

11

位列、

4

个内部存储区域和

32

位数据总线的

SDRAM

设备寻址时,支持在存储区域边界自动激活下一行。否则,将违

SDRAM

地址范围并生成

AHB

错误。

SDRAM 控制器刷新周期

自动刷新命令用于刷新 SDRAM 设备的内容。SDRAM 控制器会定期发送自动刷新命令。它

使用一个内部计数器装载 FMC_SDRTR 寄存器中的 COUNT 值。该值定义刷新周期之间的

存储器时钟周期个数(刷新速率)。该计数器的值达到零时将生成一个内部脉冲。

如果存在进行中的存储器访问,则会延迟自动刷新请求。不过,在存储器访问和自动刷新请

求同时出现时,则优先处理自动刷新请求。

如果在自动刷新期间访问存储器,则会缓存访问请求并在自动刷新完成后进行处理。

如果在上一个自动刷新请求尚未完成的情况下又出现了新的自动刷新请求,则状态寄存器中

的 RE(刷新错误)位将置 1。该位如果已使能(REIE =“1”),将生成中断。

如果 SDRAM 的行不是空闲状态(并非所有行都已关闭),则 SDRAM 控制器将生成 PALL

(全部预充电)命令,然后再进行自动刷新。

如果由 FMC_SDCMR 命令模式寄存器(模式位 =“011”)生成自动刷新命令,则必须先发

出 PALL 命令(模式位 =“010”)。

37.7.4 低功耗模式

可使用两种低功耗模式:

自刷新模式

由 SDRAM 设备自身执行自动刷新循环以保留数据,无需外部计时。

掉电模式

由 SDRAM 控制器执行自动刷新循环。

自刷新模式

通过将 MODE 位置为“101”并配置 FMC_SDCMR 寄存器中的目标存储区域位(CTB1 和/

或 CTB2)来选择该模式。

SDRAM 时钟在 TRAS 延迟后停止运行,而内部刷新定时器只有在满足以下条件之一时才停

止计数:

向两个设备都发出了自刷新命令

其中一个设备未激活(SDRAM 存储区域未初始化)。

1646/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090

进入自刷新模式前,SDRAM 控制器会自动发送 PALL 命令。

可变存储控制器 (FMC)

如果写数据 FIFO 非空,则所有数据都将在自刷新模式激活前发送到存储器并且 BUSY 状态

标志保持置 1。

在自刷新模式下,除保持低电平的 SDCKE 外,SDRAM 设备的所有输入都无效。

SDRAM 设备必须处于自刷新模式最短为 TRAS 时间,且能够在更长的时间内始终处于自刷

新模式。为保证这一最短时长,在自刷新激活后的 TRAS 延迟期间,BUSY 状态标志将保持

高电平。

SDRAM 控制器会在有 SDRAM 设备被选定后立即生成一个命令序列以退出自刷新模式。存

储器访问完成后,选定的设备将保持正常模式。

要退出自刷新模式,必须将 MODE 位置为“000”(正常模式)并配置 FMC_SDCMR 寄存

器中的目标存储区域位(CTB1 和/或 CTB2)。

图 481. 自刷新模式

7󰀓

6'&/.

W5$6󰀋PLQ󰀌

6'&.(

7󰀔7󰀕

7Q󰀎󰀔7󰀓󰀎󰀔7󰀓󰀎󰀕

&200$1'

乘󰜙⬉123

㞾󰡼󰠋󱮄

123󰀃󰀃󰀃󰀃󰀃󰀃󰀃󰀃󰀃󱟪󰩑Ҹ㒻󱡓

󰀃󰀃

㞾󰡼󰠋󱮄

'20󰀒

'20/󰀒'208

$󰀓󰀐󰀃$󰀜

$󰀔󰀔󰀃󰩠󰀃$󰀔󰀕

$󰀔󰀓

󱠔󱳝󱄬󰙼󰤎

'DWD>󰀖󰀔󰀝󰀓@催䰏󱗕

W53

乘󰜙⬉󱠔󱳝

▔⌏ⱘ󱄬󰙼󰤎

䖯󰜹㞾󰠋󱮄῵󱓣

&/.󰀃󰳼䗔󰟎㞾󰠋󱮄

῵󱓣󰠡󰖱󱣕〇󱅮

06󰀖󰀓󰀗󰀘󰀓9󰀔

W;65

䗔󰟎㞾󰠋󱮄῵󱓣

˄䞡󰨃󰠋󱮄󱯊󰷎˅

文档 ID 018909 第 7 版1647/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

掉电模式

通过将 MODE 位置为“110”并配置 FMC_SDCMR 寄存器中的目标存储区域位(CTB1 和/

或 CTB2)来选择该模式。

图 482. 掉电模式

6'&/.

6'&.(

&200$1'

123

123󰀃󰀃󰀃󰀃󰀃󰀃󰀃󰀃▔⌏

W5&'

W5$6

󱠔󱳝󱄬󰙼󰤎ぎ䯆

䖯󰜹󱥝⬉῵󱓣

䕧󰜹㓧󰞆󰤎䮼󱥻󰝇䯁

䗔󰟎󱥝⬉῵󱓣

W5&

06󰀖󰀓󰀗󰀘󰀔9󰀔

如果写数据 FIFO 非空,则所有数据都将在掉电模式激活前发送到存储器。

SDRAM 控制器会在有 SDRAM 设备被选定后立即退出掉电模式。存储器访问完成后,选定

的 SDRAM 设备将保持正常模式。

在掉电模式期间,将禁用 SDRAM 设备的所有输入/输出缓冲区,只有保持低电平的 SDCKE

除外。

SDRAM 设备保持掉电模式的时间不会长于刷新周期,并且自身无法执行自刷新循环。因

此,SDRAM 控制器通过以下操作执行刷新:

1.

2.

3.

4.

退出掉电模式并将 SDCKE 驱动为高电平

生成 PALL 命令(前提是在掉电模式下存在激活行)

生成自动刷新命令

再次将 SDCKE 驱动为低电平以返回掉电模式。

要退出掉电模式,必须将 MODE 位置为“000”(正常模式)并配置 FMC_SDCMR 寄存器

中的目标存储区域位(CTB1 和/或 CTB2)。

1648/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

37.7.5 SDRAM 控制寄存器

SDRAM 控制寄存器 1,2(FMC_SDCR1,FMC_SDCR2)

SDRAM Control registers 1,2

偏移地址:0x140+ 4* (x – 1),x = 1,2

复位值:0x0000 02D0

此寄存器包含每个 SDRAM 存储区域的控制参数

313121110

R

B

U

R

S

T

S

D

C

L

K

R

P

I

P

E

9

W

P

8

C

A

S

76

N

B

5

M

W

I

D

43

N

R

21

N

C

rw

0

Rerved

rwrwrwrwrwrwrwrwrwrwrwrwrwrw

位 31:15 保留,必须保持复位值

位 14:13 RPIPE:读管道 (Read pipe)

这些位可定义在 CAS 延迟后延后多少个 HCLK 时钟周期读取数据。

00:0 个 HCLK 时钟周期延迟

01:1 个 HCLK 时钟周期延迟

10:2 个 HCLK 时钟周期延迟

11:保留,不使用

注意:

FMC_SDCR2

寄存器中的相应位为无关位。

位 12 RBURST:突发读 (Burst read)

此位可使能突发读模式。SDRAM 控制器预期在 CAS 延迟期间接受下一个读命令并将数据存储在读

FIFO 中。

0:不将单次读请求作为突发请求管理

1:始终将单次读请求作为突发请求管理

注意:

FMC_SDCR2

寄存器中的相应位为无关位。

位 11:10 SDCLK:SDRAM 时钟配置 (SDRAM clock configuration)

这些位用于定义两个 SDRAM 存储区域的 SDRAM 时钟周期以及在更改频率前禁止时钟。此时,必

须重新初始化 SDRAM。

00:禁止 SDCLK 时钟

01:保留

10:SDCLK 周期 = 2 x HCLK 周期

11:SDCLK 周期 = 3 x HCLK 周期

注意:

FMC_SDCR2

寄存器中的相应位为无关位。

位 9 WP:写保护 (Write protection)

该位可使能对 SDRAM 存储区域的写模式访问。

0:允许写访问

1:忽略写访问

位 8:7 CAS:CAS 延迟 (CAS Latency)

该位可设置 SDRAM CAS 延迟,按存储器时钟周期计

00:保留,不使用。

01:1 个周期

10:2 个周期

11:3 个周期

文档 ID 018909 第 7 版1649/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

位 6 NB:内部存储区域数量 (Number of internal banks)

该位可设置内部存储区域数量。

0:2 个内部存储区域

1:4 个内部存储区域

位 5:4 MWID:存储器数据总线宽度 (Memory data bus width)。

这些位定义存储器件宽度。

00:8 位

01:16 位

10:32 位

11:保留,不使用。

位 3:2 NR:行地址位数 (Number of row address bits)

这些位定义行地址的位数。

00:11 位

01:12 位

10:13 位

11:保留,不使用。

位 1:0 NC:列地址位数 (Number of column address bits)

这些位定义列地址的位数。

00:8 位

01:9 位

10:10 位

11:11 位

注意:修改

RBURST

RPIPE

设置或者禁止

SDCLK

时钟之前,用户必须先发送

PALL

命令以确

保先完成正在进行的操作。

SDRAM 时序寄存器 1,2(FMC_SDTR1,FMC_SDTR2)

DRAM Timing registers 1,2

偏移地址:0x148 + 4 * (x – 1),x = 1,2

复位值:0x0FFF FFFF

此寄存器包含每个 SDRAM 存储区域的时序参数

313121110

Rerved

rwrwrwrwrw

TRCD

rwrwrwrw

TRP

rwrwrwrw

TWR

rwrwrwrw

TRC

rwrwrwrw

9876543210

TRAS

rwrwrwrw

TXSR

rwrwrwrw

TMRD

rwrwrw

位 31:28 保留,必须保持复位值

位 27:24 TRCD:行到列延迟 (Row to column delay)

这些位定义激活命令与读/写命令之间的延迟,按存储器时钟周期数计。

0000:1 个周期

0001:2 个周期

....

1111:16 个周期

1650/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

位 23:20 TRP:行预充电延迟 (Row precharge delay)

这些位定义预充电命令与其它命令之间的延迟,按存储器时钟周期数计。仅在 FMC_SDTR1 寄存器

中配置 TRP 时序。如果使用了两个 SDRAM 设备,则必须使用最慢设备的时序配置 TRP。

0000:1 个周期

0001:2 个周期

....

1111:16 个周期

注意:

FMC_SDTR2

寄存器中的相应位为无关位。

位 19:16 TWR:恢复延迟 (Recovery delay)

这些位定义写命令和预充电命令之间的延迟,按存储器时钟周期数计。

0000:1 个周期

0001:2 个周期

....

1111:16 个周期

注意:

TWR

必须设置成与

SDRAM

数据手册中定义的写恢复时间

(t

WR

)

相匹配,保证:

TWR  TRAS - TRCD

,并且

TWR  TRC - TRCD - TRP

例如:

TRAS= 4

个周期,

TRCD= 2

个周期。因此,

TWR >= 2

个周期。

TWR

必须设置为

0x1

如果使用了两个

SDRAM

设备,则必须为

FMC_SDTR1

FMC_SDTR2

配置相同的

TWR

序(对应于较慢的

SDRAM

设备)。

位 15:12 TRC:行循环延迟 (Row cycle delay)

这些位定义刷新命令和激活命令之间的延迟,以及两个相邻刷新命令之间的延迟, 以存储器时钟周

期数表示。仅在 FMC_SDTR1 寄存器中配置 TRC 时序。如果使用了两个 SDRAM 设备,则必须使

用最慢设备的时序配置 TRC。

0000:1 个周期

0001:2 个周期

....

1111:16 个周期

注意:

TRC

必须与

SDRAM

设备数据手册中定义的

TRC

TRFC

(自动刷新周期)时序相匹配。

注意:

FMC_SDTR2

寄存器中的相应位为无关位。

位 11:8 TRAS:自刷新时间 (Self refresh time)

这些位定义最短的自刷新周期,按存储器时钟周期数计。

0000:1 个周期

0001:2 个周期

....

1111:16 个周期

位 7:4 TXSR:退出自刷新延迟 (Exit Self-refresh delay)

这些位定义从发出自刷新命令到发出激活命令之间的延迟,按存储器时钟周期数计。

0000:1 个周期

0001:2 个周期

....

1111:16 个周期

位 3:0 TMRD:加载模式寄存器到激活 (Load Mode Register to Active)

这些位定义加载模式寄存器命令和激活或刷新命令之间的延迟,按存储器时钟周期计。

0000:1 个周期

0001:2 个周期

....

1111:16 个周期

文档 ID 018909 第 7 版1651/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)RM0090

注意:如果连接了两个

SDRAM

设备,对命令模式寄存器同时访问这两个器件(加载模式寄存器命令

和自刷新命令)的情况,将按

FMC_SDTR1

寄存器中为存储器

1

配置的时序参数(

TMRD

TRAS

TXSR

时序)发出访问命令。

仅在

FMC_SDTR1

寄存器中配置

TRP

TRC

时序。如果使用了两个

SDRAM

设备,则必

须使用最慢设备的时序配置

TRP

TRC

时序。

SDRAM 命令模式寄存器 (FMC_SDCMR)

SDRAM Command Mode register

地址偏移:0x150

复位值:0x0000 0000

该寄存器包含访问 SDRAM 设备时所发出的命令。该寄存器用于初始化 SDRAM 设备、激活

自刷新模式和掉电模式。写入 MODE 字段后,将根据 CTB1 和 CTB2 命令位向单个或全部

两个 SDRAM 存储区域发送命令。该寄存器为两个 SDRAM 存储区域所共用。

313121110

Rerved

rwrwrwrwrwrw

MRD

rwrwrwrwrwrw

987654321

MODE

0

NRFS

rwrwrwrwrw

CTCT

B1B2

wwwww

位 31:22 保留,必须保持复位值

位 21:9 MRD:模式寄存器定义 (Mode Register definition)

此 13 位字段定义 SDRAM 模式寄存器内容。可通过加载模式寄存器命令对模式寄存器进行编程。

位 8:5 NRFS:自刷新次数 (Number of Auto-refresh)

这些位定义 MODE =“011”时所发出的连续自刷新命令个数。

0000:1 个自刷新周期

0001:2 个自刷新周期

....

1110:15 个自刷新周期

1111:保留

位 4 CTB1:命令目标存储区域 1 (Command Target Bank 1)

该位指示是否向 SDRAM 存储器 1 发送命令。

0:命令未发送到 SDRAM 存储区域 1

1:命令已发送到 SDRAM 存储区域 1

位 3 CTB2:命令目标存储区域 2 (Command Target Bank 2)

该位指示是否向 SDRAM 存储器 2 发送命令。

0:命令未发送到 SDRAM 存储区域 2

1:命令已发送到 SDRAM 存储区域 2

1652/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

位 2:0 MODE:命令模式 (Command mode)

这些位定义发送到 SDRAM 设备的命令。

000:正常模式

001:时钟配置使能

010:PALL(“预充电所有存储区域”)命令

011:自刷新命令

100:加载模式寄存器

101:自刷新命令

110:掉电命令

111:保留

注意:命令发出后,至少一个命令目标存储区域位(

CBT1

CBT2

)必须置

1

。如果两个存储区域都

使用,则必须将

CBT1

CBT2

位置

1

,向两个存储区域同时发送命令。

SDRAM 刷新定时器寄存器 (FMC_SDRTR)

SDRAM Refresh Timer register

偏移地址:0x154

复位值:0x0000 0000

该寄存器通过配置刷新定时器计数值来设置刷新循环之间的刷新速率,按 SDCLK 时钟周期

数计。

刷新速率 = (COUNT + 1) x SDRAM 频率时钟

COUNT =(SDRAM 刷新周期/行数) - 20

示例

刷新速率 = 64 ms/(8196 行) = 7.81 μs

其中 64 ms 是 SDRAM 的刷新周期。

7.81s60MHz=468.6

如果在接受读请求后出现内部刷新请求,则必须将刷新速率增加 20 个 SDRAM 时钟周期

(如上所示)以获得重充足的裕量。其对应的 COUNT 值为“0”(448)。

该 13 位字段将加载到使用 SDRAM 时钟递减的定时器。此定时器在计数到零时生成刷新脉

冲。COUNT 值必须设置为至少 41 个 SDRAM 时钟周期。

一旦完成对 FMC_SDRTR 寄存器的编程,定时器就开始计数。如果寄存器中编程的值为

“0”,则不会执行刷新。切不可在初始化后重新编程该寄存器以避免刷新速率被修改。

每当生成刷新脉冲时,都会重新将该 13 位 COUNT 字段加载到计数器中。

如果存在进行中的存储器访问,则会延迟自动刷新请求。不过,在存储器访问和自动刷新请

求同时出现时,则优先处理自动刷新请求。如果在刷新期间访问存储器,则会缓存访问请求

并在刷新完成后进行处理。

此寄存器为 SDRAM 存储区域 1 和存储区域 2 所共用。

文档 ID 018909 第 7 版1653/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

可变存储控制器 (FMC)

.

RM0090

31342322212

Rerved

14

REIE

rw

1312111

CRE

w

COUNT

rwrwrwrwrwrwrwrwrwrwrwrwrw

位 31:15 保留,必须保持复位值

位 14 REIE:RES 中断使能 (RES Interrupt Enable)

0:禁止中断

1:RE = 1 时生成中断

位 13:1 COUNT:刷新定时器计数 (Refresh Timer Count)

该 13 位字段定义 SDRAM 设备的刷新速率,以存储器时钟周期数表示。该字段必须设置为至少 41 个

SDRAM 时钟周期。

刷新速率 = (COUNT + 1) x SDRAM 频率时钟

COUNT =(SDRAM 刷新周期/行数) - 20

位 0 CRE:清除刷新错误标志 (Clear Refresh error flag)

该位用于清除状态寄存器中的刷新错误标志 (RE)。

0:无操作

1:清除刷新错误标志

注意:所编程的

COUNT

值不可等于以下时序之和:

TWR+TRP+TRC+TRCD+4

个存储器时钟周期。

SDRAM 状态寄存器 (FMC_SDSR)

SDRAM Status register

偏移地址:0x158

复位值:0x0000 0000

365

B

U

S

Y

4

M

O

D

E

S

2

32

M

O

D

E

S

1

10

R

E

Rerved

rrrrrr

位 31:5 保留,必须保持复位值

位 5 BUSY:繁忙状态 (Busy status)

该位定义接到命令模式请求后 SDRAM 控制器的状态

0:SDRAM 控制器已准备好接受新请求

1:SDRAM 控制器未准备好接受新请求

位 4:3 MODES2:存储区域 2 的状态模式 (Status Mode for Bank 2 )

该位定义 SDRAM 存储区域 2 的状态模式。

00:正常模式

01:自刷新模式

10:掉电模式

位 2:1 MODES1:存储区域 1 的状态模式 (Status Mode for Bank 1 )

该位定义 SDRAM 存储区域 1 的状态模式。

00:正常模式

01:自刷新模式

10:掉电模式

1654/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

RM0090可变存储控制器 (FMC)

位 0 RE:清除错误标志 (Refresh error flag)

0:未检测到刷新错误

1:检测到刷新错误

在 REIE = 1 且 RE = 1 时会生成中断

37.8 FMC 寄存器映射

下表对 FMC 寄存器进行了汇总。

表 290. FMC 寄存器映射

A

S

Y

N

C

W

A

I

T

A

S

Y

N

C

W

A

I

T

A

S

Y

N

C

W

A

I

T

A

S

Y

N

C

W

A

I

T

C

B

U

R

S

T

R

W

C

B

U

R

S

T

R

W

C

B

U

R

S

T

R

W

C

B

U

R

S

T

R

W

W

R

A

P

M

O

D

W

R

A

P

M

O

D

W

R

A

P

M

O

D

W

R

A

P

M

O

D

B

U

R

S

T

E

N

W

A

I

T

C

F

G

W

A

I

T

P

O

L

E

X

T

M

O

D

R

e

s

e

r

v

e

d

C

C

L

K

E

N

F

A

C

C

E

N

W

A

I

T

E

N

M

U

X

E

N

M

U

X

E

N

M

U

X

E

N

M

U

X

E

N

P

W

A

I

T

E

N

P

W

A

I

T

E

N

P

W

A

I

T

E

N

0x00FMC_BCR1RervedRerved

B

U

R

S

T

E

N

W

A

I

T

C

F

G

W

A

I

T

P

O

L

R

e

s

e

r

v

e

d

E

X

T

M

O

D

F

A

C

C

E

N

W

A

I

T

E

N

0x08FMC_BCR2RervedRerved

B

U

R

S

T

E

N

W

A

I

T

C

F

G

W

A

I

T

P

O

L

R

e

s

e

r

v

e

d

E

X

T

M

O

D

F

A

C

C

E

N

W

A

I

T

E

N

0x10FMC_BCR3RervedRerved

B

U

R

S

T

E

N

W

A

I

T

C

F

G

W

A

I

T

P

O

L

R

e

s

e

r

v

e

d

E

X

T

M

O

D

F

A

C

C

E

N

W

A

I

T

E

N

0x18FMC_BCR4RervedRerved

0x04

0x0C

0x14

0x1C

0x04

0x0C

0x14

0x1C

FMC_BTR1

FMC_BTR2

FMC_BTR3

FMC_BTR4

FMC_BWTR1

FMC_BWTR2

FMC_BWTR3

FMC_BWTR4

Res.

Res.

Res.

Res.

Res.

Res.

Res.

Res.

ACCM

OD

ACCM

OD

ACCM

OD

ACCM

OD

ACCM

OD

ACCM

OD

ACCM

OD

ACCM

OD

DATLAT

DATLAT

DATLAT

DATLAT

Res.

Res.

Res.

Res.

CLKDIV

CLKDIV

CLKDIV

CLKDIV

BUSTURN

BUSTURN

BUSTURN

BUSTURN

Rerved

Rerved

Rerved

Rerved

DATAST

DATAST

DATAST

DATAST

DATAST

DATAST

DATAST

DATAST

ADDHLD

ADDHLD

ADDHLD

ADDHLD

ADDHLD

ADDHLD

ADDHLD

ADDHLD

E

C

C

E

N

P

T

Y

P

ADDSET

ADDSET

ADDSET

ADDSET

ADDSET

ADDSET

ADDSET

ADDSET

R

e

s

e

r

v

e

d

R

e

s

e

r

v

e

d

R

e

s

e

r

v

e

d

P

B

K

E

N

P

B

K

E

N

P

B

K

E

N

0x60FMC_PCR2

E

C

C

E

N

0x80FMC_

E

C

C

E

N

0xA0FMC_

文档 ID 018909 第 7 版

P

T

Y

P

P

T

Y

P

1655/1710

1656

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

M

B

K

E

N

W

R

E

N

M

W

I

D

M

T

Y

P

M

B

K

E

N

W

R

E

N

M

W

I

D

M

T

Y

P

M

B

K

E

N

W

R

E

N

M

T

Y

P

M

W

I

D

M

B

K

E

N

W

R

E

N

M

T

Y

P

M

W

I

D

3

1

3

0

2

9

2

8

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

1

9

1

8

1

7

1

6

1

5

1

4

1

3

1

2

1

1

1

0

9876543210

偏移寄存器

可变存储控制器 (FMC)

表 290. FMC 寄存器映射(续)

RM0090

F

E

M

P

T

F

E

M

P

T

F

E

M

P

T

I

R

E

N

I

F

E

N

I

L

E

N

I

R

E

N

I

F

E

N

I

L

E

N

I

L

S

I

L

S

M

O

D

E

I

L

S

0x64

0x84

0xA4

0x68

0x88

0xA8

0x6C

0x8C

0xAC

0xB0

0x74

0x94

0x140

FMC_SR2

FMC_SR3

FMC_SR4

FMC_PMEM2

FMC_PMEM3

FMC_PMEM4

FMC_PATT2

FMC_PATT3

FMC_PATT4

FMC_PIO4

FMC_ECCR2

FMC_ECCR3

FMC_SDCR_1Rerved

MEMHIZx

MEMHIZx

MEMHIZx

ATTHIZx

ATTHIZx

ATTHIZx

IOHIZx

Rerved

Rerved

Rerved

MEMHOLDx

MEMHOLDx

MEMHOLDx

ATTHOLDx

ATTHOLDx

ATTHOLDx

IOHOLDx

ECCx

ECCx

R

B

U

R

S

T

R

B

U

R

S

T

R

P

I

P

E

MEMWAITx

MEMWAITx

MEMWAITx

ATTWAITx

ATTWAITx

ATTWAITx

IOWAITx

I

R

E

N

I

F

E

N

I

L

E

N

MEMSETx

MEMSETx

MEMSETx

ATTSETx

ATTSETx

ATTSETx

IOSETx

M

W

I

D

C

A

S

C

L

K

W

P

N

R

R

P

I

P

E

N

R

0x148

0x14C

0x150

0x154

FMC_SDTR1

FMC_SDTR2

FMC_SDCMR

FMC_SDRTR

Rerved

Rerved

TRCD

TRCD

Rerved

TRP

TRP

TWR

TWR

M

R

D

TRC

TRC

TRAS

TRAS

N

R

F

S

TXSR

TXSR

C

T

B

1

C

T

B

2

TMRD

TMRD

C

O

U

N

T

R

E

I

E

Rerved

M

O

D

E

S

2

1656/1710文档 ID 018909 第 7 版

注:本文档仅提供 STM32F405/407/415/417/42x/43x 参考手册(英文第 7 版)中第 11、16、29 和 37 章的翻译。

欲获取 STM32F429/439 的完整描述,请参阅该参考手册 (RM0090) 的最新英文版。完整译文将于本网站后续发布,

敬请关注。

R

E

0x158FMC_SDSRRerved

M

O

D

E

S

1

B

U

S

Y

C

R

E

N

C

N

B

0x144FMC_SDCR_2Rerved

M

W

I

D

C

A

S

C

L

K

W

P

N

C

N

B

I

R

S

I

F

S

I

R

S

I

F

S

I

R

S

I

F

S

3

1

3

0

2

9

2

8

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

1

9

1

8

1

7

1

6

1

5

1

4

1

3

1

2

1

1

1

0

9876543210

偏移寄存器

1-STM32F4xx中文参考手册2(DMA2D+LTDC+SAI+FMC)

本文发布于:2024-04-01 13:55:29,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1711950929179679.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:1-STM32F4xx中文参考手册2(DMA2D+LTDC+SAI+FMC).doc

本文 PDF 下载地址:1-STM32F4xx中文参考手册2(DMA2D+LTDC+SAI+FMC).pdf

标签:存储器   访问   模式   地址   数据   命令   区域
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|