你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】STM32 FSMC概述

[复制链接]
STMCU小助手 发布时间:2022-3-29 09:58
01. FSMC简介
  S, q) G1 |$ X5 CSTM32F407 或 STM32F417 系列芯片都带有 FSMC 接口,ALIENTEK 探索者 STM32F4 开发板的主芯片为 STM32F407ZGT6,是带有 FSMC 接口的。
0 Q; O2 B2 M5 r2 U) K5 q1 u
2 g  D- @2 `* q4 JFSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F4 的 FSMC 接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器。
- ]  P4 c, i1 K* m* j: c
" k! A$ z4 ]; S& [7 G# O4 j02. FSMC主要特性
4 t( |( ~; z/ I& U1 c* W7 ]FSMC 能够连接同步、异步存储器和 16 位 PC 存储卡。其主要用途如下:
# ]6 P$ ^/ W! R$ Q7 A5 Z$ i● 将 AHB 数据通信事务转换为适当的外部器件协议
) T$ P* |, u, ~/ o  p7 W● 满足外部器件的访问时序要求% V+ H" E) c; H
所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC 一次只能访问一个外部器件。8 u/ f! a; }* B  g
0 v6 X9 z: n. n
FSMC 具有以下主要功能:2 O- b2 C$ e! d" X. A$ j8 R) T
● 连接静态存储器映射的器件:" K" z0 u/ O4 m5 K; r5 V, M, o
— 静态随机访问存储器 (SRAM)$ g9 \" ^; J- ^' H* N  m
— 只读存储器 (ROM)# f' I; T# q# W6 U- ~8 \5 o4 {
— NOR Flash/OneNAND Flash
  F8 T' f4 T* D3 ?4 C— PSRAM(4 个存储区域)  q9 o5 B$ e6 I$ f) p
● 两个带有 ECC 硬件的 NAND Flash 存储区域,可检查多达 8 KB 的数据* x) Q* m' @, a) d2 }! Q2 I
● 16 位 PC 卡兼容设备4 w2 Z& o' c; i! I
● 支持对同步器件(NOR Flash 和 PSRAM)的突发模式访问
, F6 c- }4 I2 ]+ @● 8 或 16 位宽的数据总线
4 Z7 ]! x% }* _0 u3 b● 每个存储区域有独立的片选控制3 S$ i  A+ C( W. c9 f
● 每个存储区域可独立配置
* l' W, q; [! p* G● 可对时序进行编程,以支持各种器件,尤其是:' W; Q9 R( a3 w$ _8 I$ v
— 等待周期可编程(最多 15 个时钟周期)
, r) W+ X3 I2 M( c; {$ F— 总线周转周期可编程(最多 15 个时钟周期)- w. @0 r4 ~& O- k$ X
— 输出使能和写入使能延迟可编程(最多 15 个时钟周期)
) @+ v, v7 G0 F9 t3 _0 W— 独立的读和写时序和协议,以支持各种存储器和时序8 b' k3 b9 ?! o2 v
● 写使能和字节通道选择输出,可配合 PSRAM 和 SRAM 器件使用
; _+ J0 z2 t3 l) Y: E7 [) S# ~● 将 32 位的 AHB 事务转换为针对外部 16 位或 8 位器件进行的连续 16 位或 8 位访问。5 P8 M( O1 n" a4 w- J2 }4 D
● 用于写入的 FIFO,2 字长(对于 STM32F42x 和 STM32F43x,为 16 字长),每个字为32 位宽,仅用于存储数据,而不存储地址。因此,此 FIFO 仅会缓冲 AHB 批量写事务。从而可对慢速存储器执行写入操作后能快速释放 AHB,以供其它操作使用。每次仅缓冲一个突发事务:如果在有操作正在进行时发生一个新的 AHB 突发事务或者一个单独事务,则 FIFO 将会清空。FSMC 将插入等待周期,直至当前存储器访问已完成)。
9 }! G/ d$ ?  t● 外部异步等待控制
1 ^: @6 I; r/ z* f$ f: d0 \定义外部器件类型和其特性的 FSMC 寄存器通常在启动时进行设置,并且在下次上电或复位前保持不变。但也可随时更改这些设置。5 D5 Z, r. m' N, B' U- t5 M
; l0 K8 V1 ?9 D6 J: r& c' c
03. FSMC框图" y) J7 U* z8 m% n% y
FSMC 包含四个主要模块:
4 K& @# H! x1 T; a● AHB 接口(包括 FSMC 配置寄存器)
6 Y9 e6 ^+ m' k/ W7 t● NOR Flash/PSRAM 控制器3 k4 l- q: H, m! e; K
● NAND Flash/PC 卡控制器: ]# i6 K2 k* N. t# M: A
● 外部器件接口
2 }) o7 D' `% E, T( e! D
- T$ S- K. S+ l4 L! f3 D N5DJKE$SV$E{MVL2I3~BQYL.png " _& T+ U" y: i# ^& i
6 y; W8 F5 J$ U# c! `
04. 外部器件地址映射0 w6 S3 _  u4 X1 M' ~3 P* l9 f
从 FSMC 的角度,外部存储器被划分为 4 个固定大小的存储区域,每个存储区域的大小为256 MB:3 K8 W: R) t6 i+ K3 x3 T
● 存储区域 1 可连接多达 4 个 NOR Flash 或 PSRAM 存储器器件。此存储区域被划分为 4 个NOR/PSRAM 区域,带 4 个专用片选信号。" d  }+ N* i( `& j
● 存储区域 2 和 3 用于连接 NAND Flash 器件(每个存储区域一个器件)
/ K+ q- R! r2 s, h) a& ?9 u● 存储区域 4 用于连接 PC 卡设备$ V8 X$ U) R6 s
对于每个存储区域,所要使用的存储器类型由用户在配置寄存器中定义。
: E9 B& K1 v8 [4 v; p9 u, R
3 z# i7 ~: `; J$ b5 G! i: s  { W`3E4MWKKL(@V0KUL{9`C]7.png
/ A8 \9 W4 N: Q# k
6 s, V- f' r) q' t% L4.1 NOR/PSRAM地址映射
/ T6 h; p" i( W7 VHADDR[27:26] 位用于从 表 185 中所示的四个存储区域之中选择其中一个存储区域。" X5 ?9 O7 |$ w( g# K
, a* l0 x3 K, p8 ^- r1 t5 a1 h4 c
9W6A9E(GKV8W@274XRS{4)6.png
4 B. G/ Q4 z: X3 M% L( Z# l6 g( o! F; N7 y. b2 c
HADDR[25:0] 包含外部存储器地址。由于 HADDR 为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,实际向存储器发送的地址也将有所不同,如下表所示。
* H3 ^3 l8 z- O  R7 D' o" Q
) d$ {1 L, b. d/ C5 s 20200907160011892.png
6 Y3 e: g" @4 ^% C' N! O
" x) b- i! {* ]4.2 NOR Flash/PSRAM控制器
8 c# ~& j" x6 `& fFSMC 会生成适当的信号时序,以驱动以下类型的存储器:
0 n- f) e( P6 H3 F● 异步 SRAM 和 ROM
0 ^0 ^% |4 ]+ `8 Z" [: ?4 o— 8 位
1 T% R+ i; }6 S— 16 位
7 h7 b$ B- X+ }6 Y3 ]8 R& ?— 32 位5 O4 {+ }. j/ @2 f2 Q
● PSRAM(Cellular RAM)
* z# r, q' U- D$ a7 E3 c3 _— 异步模式1 ?0 w/ u3 {7 Q0 R4 `
— 突发模式+ q7 U. k" K# @0 e  P7 T6 Z
— 复用或非复用2 b2 n1 R: U5 U0 C
● NOR Flash
" U- f) v6 G9 y— 异步模式或突发模式
; a/ u" B' a, U* [- {, u% }$ }— 复用或非复用
7 T/ W- E+ V. c3 Z; E% @$ d  E) |! Q' Z9 ~: b
FSMC 会为每个存储区域输出唯一的片选信号 NE[4:1]。所有其它信号(地址、数据和控制)均为共享信号。
- a9 |' c9 r% U" [# t8 I8 I9 {) z* C4 z/ S- n# a1 F/ P
对于同步访问,FSMC 只有在读/写事务期间才会向所选的外部器件发出时钟 (CLK)。HCLK时钟频率是该时钟的整数倍。每个存储区域的大小固定,均为 64 MB。5 x7 Z( A2 K# g. E* E$ }9 J

) t  U4 k  V5 J0 {' E* G每个存储区域都通过专用的寄存器进行配置(请参见 第 32.5.6 节 )。7 H2 R! x# z! D* ^. \+ w

* L- y% P! o! M, ]9 S. b存储器的可编程参数包括访问时序(请参见 表 189)和对等待管理的支持(用于在突发模式下访问 NOR Flash 和 PSRAM)。
4 {# O& e$ A+ j0 r' l
3 L6 Z& o( U) p8 l8 j2 G! g1 v05. 寄存器描述! f, ^0 ?& c5 n2 h# g& ^' r
5.1 SRAM/NOR-Flash 片选控制寄存器 1…4 (FSMC_BCR1…4)

9 p$ [( i9 A% i$ GSRAM/NOR-Flash chip-select control registers 1…4
9 u# Q( f/ h0 k! C- A) ^偏移地址:0xA000 0000 + 8 * (x — 1),x = 1…4. q$ d; P$ X' ^
复位值:0x0000 30DX6 t2 A% j, p# p0 I8 k7 J" z
该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和异步或突发 NOR Flash。5 K+ u0 e2 c, k: u$ c
: D7 a, B+ [3 W
20200907160036497.png
; o1 g0 t6 T! e
# D: v! a8 R) `8 u) J5.2 SRAM/NOR-Flash 片选时序寄存器 1…4 (FSMC_BTR1…4)& f$ M! K; v/ m! {2 z3 T
SRAM/NOR-Flash chip-select timing registers 1…4
# A6 |8 X# D: S偏移地址:0xA000 0000 + 0x04 + 8 * (x — 1),x = 1…47 p- l$ b- R9 E4 a) h7 G# D+ S
复位值:0x0FFF FFFF3 Q5 @4 w! z. A$ {$ Y3 y" b5 E1 O; g
该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和 NOR Flash。如果FSMC_BCRx 寄存器中的 EXTMOD 位置 1,该寄存器将和另外一个寄存器配合来配置写入和读取的时序参数。也就是说有 2 个寄存器可用:一个用于配置读取访问(此寄存器),另一个用于配置写入访问(FSMC_BWTRx 寄存器)。! m0 B. O- W3 Y+ b% v2 d

% `2 n4 m% K- \2 H+ Q( s3 w: E& r 20200907160043463.png
2 u, e8 c, ?  J6 c) l6 b
6 C* h7 E  E& Q( a5.3 SRAM/NOR-Flash 写入时序寄存器 1…4 (FSMC_BWTR1…4)0 d; c% V0 o( H2 d; C9 p
SRAM/NOR-Flash write timing registers 1…4
. n. o9 ?( R: I5 V/ d5 s偏移地址:0xA000 0000 + 0x104 + 8 * (x — 1),x = 1…4
: u' m! G% ~6 W) a3 Y4 r7 a复位值:0x0FFF FFFF
2 D1 X6 X/ ?4 b% p该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和 NOR Flash。当 FSMC_BCRx
6 X; _- _/ b) m寄存器中的 EXTMOD 位置 1 时,该寄存器将处于有效状态,可以进行写入访问。
, {, }, n. q! b% l* }6 l 20200907160049491.png
1 F" d1 b( C' l) f6 f; a0 n, s# W' N1 h: x- q, ~; I0 w; @
5 {, F4 `3 n& f) b, {
1 O) }/ w8 O! v1 {0 M
, ^4 S& E5 \6 u8 v; A0 u4 g

7 _0 P" f6 D6 z  \* T( ?8 ]
赞 收藏 评论0 发布时间:2022-3-29 09:58

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版