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

【经验分享】STM32 FSMC概述

[复制链接]
STMCU小助手 发布时间:2022-6-14 13:44
01. FSMC简介
3 C7 }7 T: Q) V2 l( ?( @, H' x/ GSTM32F407 或 STM32F417 系列芯片都带有 FSMC 接口,ALIENTEK 探索者 STM32F4 开发板的主芯片为 STM32F407ZGT6,是带有 FSMC 接口的。5 M& w; `7 {, f: |, \
, \# H$ v3 S) _9 `9 o/ d+ [% t
FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F4 的 FSMC 接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器。7 X; d. m2 k+ r$ l
  ]. C- p  R% J- B
02. FSMC主要特性
4 S* ^) _2 \0 q6 ]. BFSMC 能够连接同步、异步存储器和 16 位 PC 存储卡。其主要用途如下:5 y1 L% N' E2 Y% X
● 将 AHB 数据通信事务转换为适当的外部器件协议: N+ G6 Z$ b  K& ^* c
● 满足外部器件的访问时序要求
  Y* p/ j# {1 Z" L所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC 一次只能访问一个外部器件。* o' ~8 p  P# H: F6 ^
7 K& C% Y$ W0 j% w
FSMC 具有以下主要功能:3 h+ _+ `+ ]5 m; o3 V" v
● 连接静态存储器映射的器件:
' e- E- b5 t2 M) B% H, F7 e— 静态随机访问存储器 (SRAM)! B9 @4 s  T+ ]) }; `3 q0 S! F
— 只读存储器 (ROM)5 e; B( C' X3 l7 N4 F* f, B/ H
— NOR Flash/OneNAND Flash
5 \8 ^' J- b* g; c7 W, D; f2 W— PSRAM(4 个存储区域)8 M, i5 I, A7 j& t# \
● 两个带有 ECC 硬件的 NAND Flash 存储区域,可检查多达 8 KB 的数据
& E0 }0 H  ]- {! h# Z) f# N● 16 位 PC 卡兼容设备
4 \! _1 g' Y- |* D; `3 j5 p2 }: ]" g) t● 支持对同步器件(NOR Flash 和 PSRAM)的突发模式访问
! b, [$ R3 Z0 ~0 Q* M* k. i3 `● 8 或 16 位宽的数据总线
" O! J/ O6 E& k# L$ l4 R● 每个存储区域有独立的片选控制4 ]# G  Y0 m+ |( D
● 每个存储区域可独立配置
% w, ~$ M6 W( ?( D  |● 可对时序进行编程,以支持各种器件,尤其是:; _! b0 L2 p2 L! w  l+ `
— 等待周期可编程(最多 15 个时钟周期)+ e0 G5 w# e1 B- c
— 总线周转周期可编程(最多 15 个时钟周期)
8 r, U9 I8 J; E* l- _— 输出使能和写入使能延迟可编程(最多 15 个时钟周期)
# G0 [0 D8 i  |6 F' X+ \1 k5 Q— 独立的读和写时序和协议,以支持各种存储器和时序
3 Z# k1 {! i  v3 d: ?● 写使能和字节通道选择输出,可配合 PSRAM 和 SRAM 器件使用# x$ a) x2 u" z
● 将 32 位的 AHB 事务转换为针对外部 16 位或 8 位器件进行的连续 16 位或 8 位访问。6 y5 C+ I. J* ~& x% J" q5 @$ m8 h
● 用于写入的 FIFO,2 字长(对于 STM32F42x 和 STM32F43x,为 16 字长),每个字为32 位宽,仅用于存储数据,而不存储地址。因此,此 FIFO 仅会缓冲 AHB 批量写事务。从而可对慢速存储器执行写入操作后能快速释放 AHB,以供其它操作使用。每次仅缓冲一个突发事务:如果在有操作正在进行时发生一个新的 AHB 突发事务或者一个单独事务,则 FIFO 将会清空。FSMC 将插入等待周期,直至当前存储器访问已完成)。7 s- B# S6 y7 {+ S  m" {4 x+ C
● 外部异步等待控制0 `" ?' v& L8 w1 ^# R
定义外部器件类型和其特性的 FSMC 寄存器通常在启动时进行设置,并且在下次上电或复位前保持不变。但也可随时更改这些设置。- q. W/ m9 {! L* K3 i% ]. H
4 D/ n0 Z0 G" y: ~5 y
03. FSMC框图

) U! r! L7 K! C5 [/ E0 k: J6 mFSMC 包含四个主要模块:
$ `+ h* p) `" r, C! W& k+ ^- K+ V● AHB 接口(包括 FSMC 配置寄存器)6 O6 ]% u+ ~; p& E, |
● NOR Flash/PSRAM 控制器
* C% N$ L6 y1 P: e5 J# X● NAND Flash/PC 卡控制器
3 m% v( _' K3 ?  A5 y● 外部器件接口6 t' [5 q& f& Q! b2 U9 v5 ], k
( A: `6 y" M" W. j: S! r6 k
BOAP}1ERW4E9LD8]DY5K6{G.png . @* ?& x5 C/ P2 I9 q; C' w/ |

: U' n8 E( S& ~& B04. 外部器件地址映射
8 m8 I" V4 x$ q, ]- U8 A+ J从 FSMC 的角度,外部存储器被划分为 4 个固定大小的存储区域,每个存储区域的大小为256 MB:
+ }) Z+ K$ x5 D* ~● 存储区域 1 可连接多达 4 个 NOR Flash 或 PSRAM 存储器器件。此存储区域被划分为 4 个NOR/PSRAM 区域,带 4 个专用片选信号。
! p' W0 a& K! P' j● 存储区域 2 和 3 用于连接 NAND Flash 器件(每个存储区域一个器件)
1 J7 C/ m! x6 w1 U* s● 存储区域 4 用于连接 PC 卡设备
5 H* J3 g0 _6 V; l对于每个存储区域,所要使用的存储器类型由用户在配置寄存器中定义。. a- I/ E- m) X6 h' m% \* K! H) B  m! e

, F* K; @% [3 Z9 z( y* \! ? [GW}GGQ47XHA1R2{22CE2RY.png
% h% Q- G0 l& R) ]5 c6 n1 B9 L" U  e) A" L7 _4 m
4.1 NOR/PSRAM地址映射9 I# a2 ^6 z. {: p% m$ G
HADDR[27:26] 位用于从 表 185 中所示的四个存储区域之中选择其中一个存储区域。- Y$ \0 g8 W5 k6 f

5 i! i3 b( ~. J+ e" X ! y' u- }( n4 X: A; V- v7 |- V; q: F+ b' l
- N: q$ e; O( h5 g7 A! U; S2 T
HADDR[25:0] 包含外部存储器地址。由于 HADDR 为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,实际向存储器发送的地址也将有所不同,如下表所示。
+ a8 u; t/ A9 I) D% v  E1 A" D0 w" h# k0 W# }
[P2[D1N_@LG]P$~F@L`P]YM.png 1 h' l/ c- S* a! G. M8 Z! j
$ K' a' h: d! J6 [2 k
4.2 NOR Flash/PSRAM控制器
2 ]9 I! Y9 a( P: b% o6 p4 aFSMC 会生成适当的信号时序,以驱动以下类型的存储器:" |) d4 U7 I6 m; A0 o9 U
● 异步 SRAM 和 ROM6 _4 z  A6 I! @% a* j9 F
— 8 位
  X* J* l  M% j3 A— 16 位
  y5 m2 d) ^8 J7 a1 i+ b! J— 32 位, a; p- d" c- f  n) U; {+ h
● PSRAM(Cellular RAM)
# b/ |- }% l$ [: I5 w" O6 e— 异步模式
& }* J" q2 h% s) ~6 `— 突发模式  X5 N6 O  p9 M" U+ O; R- W. c4 B8 z. B
— 复用或非复用
, R1 M4 D0 g; M% d5 H● NOR Flash+ N- A) O; H) n; B& G
— 异步模式或突发模式
# T8 s- v7 m6 |— 复用或非复用
+ X7 j* N1 w; t1 I/ s9 {9 s$ \' F$ j. ]8 p- \- ]. T
FSMC 会为每个存储区域输出唯一的片选信号 NE[4:1]。所有其它信号(地址、数据和控制)均为共享信号。0 C, u" _' V! s. _) x

( n, @8 x8 |, u对于同步访问,FSMC 只有在读/写事务期间才会向所选的外部器件发出时钟 (CLK)。HCLK时钟频率是该时钟的整数倍。每个存储区域的大小固定,均为 64 MB。3 [1 Q9 x2 ^+ ~1 e8 c

0 I  W7 U5 L, C5 A9 T每个存储区域都通过专用的寄存器进行配置(请参见 第 32.5.6 节 )。
! R2 W$ z- o0 B0 q/ c2 F0 j4 D3 x) y3 B# L- e
存储器的可编程参数包括访问时序(请参见 表 189)和对等待管理的支持(用于在突发模式下访问 NOR Flash 和 PSRAM)。
/ M  \+ v4 r/ s& A: w2 e
. O- k5 z& O3 _, d8 ?6 H8 l05. 寄存器描述$ e# V" n7 T( J/ v9 M
5.1 SRAM/NOR-Flash 片选控制寄存器 1…4 (FSMC_BCR1…4)

) B& A$ c/ T7 A5 R- f) }6 M9 V4 f% b) dSRAM/NOR-Flash chip-select control registers 1…4
0 Z; f- b. h" k5 {+ t9 Z2 E偏移地址:0xA000 0000 + 8 * (x — 1),x = 1…45 x0 W, s/ s7 i
复位值:0x0000 30DX& h; k. {1 H" i+ S: V* }" A
该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和异步或突发 NOR Flash。# i* W/ o& n& j, |  ?

6 C3 ^8 H. }" s0 v; z! O8 B1 b 20200907160036497.png
/ G( j1 w9 a) N3 j7 B( e" V  n! q& ]; W! Y: R
5.2 SRAM/NOR-Flash 片选时序寄存器 1…4 (FSMC_BTR1…4)
0 M  x  x/ l+ I" qSRAM/NOR-Flash chip-select timing registers 1…48 e. S" p% Y: J+ p6 }
偏移地址:0xA000 0000 + 0x04 + 8 * (x — 1),x = 1…4
. I; |0 e8 U7 b* D0 f$ }+ S/ j复位值:0x0FFF FFFF
9 \+ C3 N/ s. ~' V该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和 NOR Flash。如果FSMC_BCRx 寄存器中的 EXTMOD 位置 1,该寄存器将和另外一个寄存器配合来配置写入和读取的时序参数。也就是说有 2 个寄存器可用:一个用于配置读取访问(此寄存器),另一个用于配置写入访问(FSMC_BWTRx 寄存器)。) b) W! O# g0 P' u( B3 |! ^3 O

' U; B, A9 [8 n) O0 p2 b: f9 T1 U, B 20200907160043463.png
0 E. o1 N: Q2 B5 L+ K2 ?( B/ |1 m) q9 J+ u; ?# u: q
5.3 SRAM/NOR-Flash 写入时序寄存器 1…4 (FSMC_BWTR1…4)
3 X/ y' v8 E8 LSRAM/NOR-Flash write timing registers 1…4! c& T9 l" X3 ]6 C: Y
偏移地址:0xA000 0000 + 0x104 + 8 * (x — 1),x = 1…4$ i8 t- a" B$ S
复位值:0x0FFF FFFF
# w: y8 a. B0 E* Q5 W6 K7 V该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和 NOR Flash。当 FSMC_BCRx, E( H# k0 s. A( n
寄存器中的 EXTMOD 位置 1 时,该寄存器将处于有效状态,可以进行写入访问。
) Q+ Q4 G1 U( \, m. l2 V 20200907160049491.png 0 u, Y# b7 W" `2 ?/ D' r, H

" I+ o3 c6 ]4 c/ y7 |" M
/ ]8 Q& e* k5 b/ |. P5 _) [9 D5 v- W' q$ R

. h# C. g9 V1 G/ L! `
收藏 评论0 发布时间:2022-6-14 13:44

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版