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

【经验分享】STM32 FSMC概述

[复制链接]
STMCU小助手 发布时间:2022-6-14 13:44
01. FSMC简介
- a" e0 O2 R0 [' @* h& R* e" RSTM32F407 或 STM32F417 系列芯片都带有 FSMC 接口,ALIENTEK 探索者 STM32F4 开发板的主芯片为 STM32F407ZGT6,是带有 FSMC 接口的。
9 @+ w# N$ g% f) ~/ K: a6 I) \% k1 q. [# w- x. z7 z7 i
FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F4 的 FSMC 接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器。
8 f5 w0 v. h7 D5 E7 V- x
2 q' \3 `& U# j: `. x- q9 H02. FSMC主要特性
: F% [- j( v: Y, OFSMC 能够连接同步、异步存储器和 16 位 PC 存储卡。其主要用途如下:
9 k$ {0 w) f0 a% ?● 将 AHB 数据通信事务转换为适当的外部器件协议
+ \- e; T& j; G6 Y/ l: ^; q' r3 {● 满足外部器件的访问时序要求( q* Z& ]2 T. l: f
所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC 一次只能访问一个外部器件。
9 i" _! u0 C9 u9 L  U. y  P: [: q+ a( k2 U# _) Y, }/ {
FSMC 具有以下主要功能:+ q, j+ i; E) d' H
● 连接静态存储器映射的器件:3 y- @% p6 Q0 i& q5 {1 l' c5 Q- Q8 w
— 静态随机访问存储器 (SRAM)
3 v) _8 c# g' ]4 t$ E— 只读存储器 (ROM)
/ m7 r+ J; g+ M— NOR Flash/OneNAND Flash
( a; P( Q- m# x+ f: n; f— PSRAM(4 个存储区域)4 J% l* G5 q) q8 n# f) \
● 两个带有 ECC 硬件的 NAND Flash 存储区域,可检查多达 8 KB 的数据7 t- I# \* E4 `( U
● 16 位 PC 卡兼容设备; `% d% V1 r3 ?) q2 z* q/ M7 p9 q
● 支持对同步器件(NOR Flash 和 PSRAM)的突发模式访问
* [% @3 p4 X9 y: m. d8 f- R7 _8 g● 8 或 16 位宽的数据总线
7 ?& q$ x5 k( M5 E  s. r9 d% k6 X● 每个存储区域有独立的片选控制& K8 t9 e; N7 a# h
● 每个存储区域可独立配置
) r4 O: [0 k; C4 a/ s● 可对时序进行编程,以支持各种器件,尤其是:7 E0 S/ f" K4 e* ?: I
— 等待周期可编程(最多 15 个时钟周期)- v% }- t9 E6 I6 `7 L6 V
— 总线周转周期可编程(最多 15 个时钟周期)! H+ ?; W9 E7 B
— 输出使能和写入使能延迟可编程(最多 15 个时钟周期)8 V! F  \) {( P$ p
— 独立的读和写时序和协议,以支持各种存储器和时序5 T9 D6 p8 E9 r1 J1 D
● 写使能和字节通道选择输出,可配合 PSRAM 和 SRAM 器件使用9 e9 f9 b6 l, ?2 x; Z- w
● 将 32 位的 AHB 事务转换为针对外部 16 位或 8 位器件进行的连续 16 位或 8 位访问。
/ |, X- m0 O7 r0 _5 s● 用于写入的 FIFO,2 字长(对于 STM32F42x 和 STM32F43x,为 16 字长),每个字为32 位宽,仅用于存储数据,而不存储地址。因此,此 FIFO 仅会缓冲 AHB 批量写事务。从而可对慢速存储器执行写入操作后能快速释放 AHB,以供其它操作使用。每次仅缓冲一个突发事务:如果在有操作正在进行时发生一个新的 AHB 突发事务或者一个单独事务,则 FIFO 将会清空。FSMC 将插入等待周期,直至当前存储器访问已完成)。
/ h1 a2 Q% X( A" j6 C; D: [1 l7 b  R● 外部异步等待控制
/ D- p$ H: {, u" H  j' B$ E+ t定义外部器件类型和其特性的 FSMC 寄存器通常在启动时进行设置,并且在下次上电或复位前保持不变。但也可随时更改这些设置。# L5 Y7 ^4 W, d4 @4 S

8 W! [& Y( l* L9 I0 y# [03. FSMC框图

) J; v' j5 ~6 C6 W& k- }4 BFSMC 包含四个主要模块:
, E; _( O& ~2 d9 |' E& w( K● AHB 接口(包括 FSMC 配置寄存器)
( _. \+ g3 x1 m0 ]! g: P● NOR Flash/PSRAM 控制器
: a# B7 ]5 P) Z2 J" z% Q; H+ J● NAND Flash/PC 卡控制器
6 d5 l  ~/ H. o6 L# `. Q● 外部器件接口
( b! f( O" X2 P2 b8 T0 I% [$ D7 q" J5 i+ p- D  s. G. h& K0 }
BOAP}1ERW4E9LD8]DY5K6{G.png 9 Z$ I  B' G" `8 E0 d; k: h( W! s, [

  q$ _- Z2 y6 F; n04. 外部器件地址映射; O; A* M! A1 I. e# B8 N8 p
从 FSMC 的角度,外部存储器被划分为 4 个固定大小的存储区域,每个存储区域的大小为256 MB:
, `2 @; V- v& m( Y- V● 存储区域 1 可连接多达 4 个 NOR Flash 或 PSRAM 存储器器件。此存储区域被划分为 4 个NOR/PSRAM 区域,带 4 个专用片选信号。- U( x" |" `  _8 h. a
● 存储区域 2 和 3 用于连接 NAND Flash 器件(每个存储区域一个器件)0 \* ~  s4 W9 J' ^
● 存储区域 4 用于连接 PC 卡设备3 C2 H1 q' g% X' c# F6 ^: h- P
对于每个存储区域,所要使用的存储器类型由用户在配置寄存器中定义。- u7 ~1 t, T& V2 k5 R  ~

# A2 P, d" R/ K4 M! B; j [GW}GGQ47XHA1R2{22CE2RY.png
8 C' \* v$ V" m8 t2 ^
8 I/ U( n% ]! W8 g8 l( z4.1 NOR/PSRAM地址映射. m- v* y% ?( J+ v4 w6 @
HADDR[27:26] 位用于从 表 185 中所示的四个存储区域之中选择其中一个存储区域。9 Q4 g6 ^: G5 {+ g
! u. x# ~( W8 u' G2 ^

" B1 d% e! h; V. @* E0 ]
; l, S. X1 Q; l: T- \, mHADDR[25:0] 包含外部存储器地址。由于 HADDR 为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,实际向存储器发送的地址也将有所不同,如下表所示。5 x) W; l* P3 ^, G& J, x

+ x6 C. H  X/ H [P2[D1N_@LG]P$~F@L`P]YM.png
% @6 x. u$ }  X
4 D- _2 a- z9 F6 o4.2 NOR Flash/PSRAM控制器. F* P' O1 l7 j9 K- q) z& M
FSMC 会生成适当的信号时序,以驱动以下类型的存储器:
1 _! d9 g( e+ g7 Z  B● 异步 SRAM 和 ROM0 X9 n  W2 ?/ @/ {, u1 [
— 8 位( P) a0 e2 F6 [2 c3 M* A
— 16 位
/ a9 y$ ~5 g% {. r% X& @" n) s— 32 位
* F0 E$ u: L' x& A! M● PSRAM(Cellular RAM)' k8 N; N% A/ X0 M3 `, E/ |
— 异步模式
1 M* S% f- L$ u: [— 突发模式- R) f& m: z8 k: G3 b3 a$ F( N
— 复用或非复用
- N0 m5 v- D* v+ M● NOR Flash
: J0 M! e2 }5 _- Y$ M, \— 异步模式或突发模式7 z5 \3 E/ X# z5 T5 z) F3 f# }! |
— 复用或非复用( s- t( E( d! o& U5 D

3 }1 g2 ~  q. h7 B. p# Q: X4 hFSMC 会为每个存储区域输出唯一的片选信号 NE[4:1]。所有其它信号(地址、数据和控制)均为共享信号。
' I, y7 U6 c# R' J' p3 j) u5 T5 J8 g, ?6 R, T6 d
对于同步访问,FSMC 只有在读/写事务期间才会向所选的外部器件发出时钟 (CLK)。HCLK时钟频率是该时钟的整数倍。每个存储区域的大小固定,均为 64 MB。
0 `! v8 [+ y1 ~: @8 K3 b/ z- `  M! @6 Y7 ]& _. Y8 h  Y% f- f; Y7 `
每个存储区域都通过专用的寄存器进行配置(请参见 第 32.5.6 节 )。. h3 O6 K) N6 _  }- e+ Z
% p! F. d/ `: O- u  X0 S
存储器的可编程参数包括访问时序(请参见 表 189)和对等待管理的支持(用于在突发模式下访问 NOR Flash 和 PSRAM)。7 D- l- v3 \, N5 |* J1 D
7 T; B7 Z% ^6 h' U
05. 寄存器描述/ i1 [( p: O: X2 t* M
5.1 SRAM/NOR-Flash 片选控制寄存器 1…4 (FSMC_BCR1…4)
  ~8 t3 d) @, J6 A, M1 ~  @
SRAM/NOR-Flash chip-select control registers 1…4
- f' T8 ^' i1 U  ^6 F2 n# B4 I" ?偏移地址:0xA000 0000 + 8 * (x — 1),x = 1…4
  Z- E4 H# Q$ d, q复位值:0x0000 30DX: P  @7 ^0 }; A6 w
该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和异步或突发 NOR Flash。
- k# Q) u6 T1 P  t, L1 o" t, k# T- s( C( L
20200907160036497.png
' y# |$ y1 U( W( Z3 }- F
; A, _& r: Z! B. j, N5.2 SRAM/NOR-Flash 片选时序寄存器 1…4 (FSMC_BTR1…4)
9 R& r6 m' U3 l# F# m3 @! nSRAM/NOR-Flash chip-select timing registers 1…48 v: c, e9 e2 u. [
偏移地址:0xA000 0000 + 0x04 + 8 * (x — 1),x = 1…4$ ]# I5 x' H% s; g
复位值:0x0FFF FFFF
# a; F) ^. g+ k9 A1 {4 I8 b) j) L. ~7 r" F该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和 NOR Flash。如果FSMC_BCRx 寄存器中的 EXTMOD 位置 1,该寄存器将和另外一个寄存器配合来配置写入和读取的时序参数。也就是说有 2 个寄存器可用:一个用于配置读取访问(此寄存器),另一个用于配置写入访问(FSMC_BWTRx 寄存器)。& B# d9 p! F( l$ d) A  Y

  Y/ l4 y4 e4 v5 j 20200907160043463.png
  c+ g7 T# f8 ?+ Y( p  ?0 h
5 o) r9 _1 \& k2 J7 D, s5.3 SRAM/NOR-Flash 写入时序寄存器 1…4 (FSMC_BWTR1…4)" v5 e3 o% Y* {2 T' E3 ?  {; W
SRAM/NOR-Flash write timing registers 1…4
$ `8 E0 C( O+ h* Y偏移地址:0xA000 0000 + 0x104 + 8 * (x — 1),x = 1…4
$ Y7 Y- L; m  J/ S' l; A复位值:0x0FFF FFFF
! F9 F& \$ Q+ o/ m1 Z该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和 NOR Flash。当 FSMC_BCRx; F( `+ Y: D$ A! t( ]5 h/ F
寄存器中的 EXTMOD 位置 1 时,该寄存器将处于有效状态,可以进行写入访问。0 {8 a. q6 X" p- A: e
20200907160049491.png
* P- D/ c8 p2 S7 I( {. d; z! b( @8 @% }
, V0 a4 P- @& ~9 Z

# p2 a! t6 U8 q, G7 H" g' M/ K& H0 a$ b; o+ Z* e
收藏 评论0 发布时间:2022-6-14 13:44

举报

0个回答

所属标签

相似分享

官网相关资源

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