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

【经验分享】STM32 FSMC概述

[复制链接]
STMCU小助手 发布时间:2022-6-14 13:44
01. FSMC简介
" V1 e% d- A- ~1 L2 _) ?( [+ e4 aSTM32F407 或 STM32F417 系列芯片都带有 FSMC 接口,ALIENTEK 探索者 STM32F4 开发板的主芯片为 STM32F407ZGT6,是带有 FSMC 接口的。
" v" r9 U3 N# w8 Z" r
$ Q% C1 s* f6 l, vFSMC,即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储器卡连接,STM32F4 的 FSMC 接口支持包括 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器。
+ p" ^: ]8 W3 x, d+ y+ K- U! t4 }% s2 X: w* i
02. FSMC主要特性7 ~( t: C0 {7 v2 Q9 x/ g
FSMC 能够连接同步、异步存储器和 16 位 PC 存储卡。其主要用途如下:: J* ~; k" v( }2 L
● 将 AHB 数据通信事务转换为适当的外部器件协议
" n5 r6 D" C% u" H+ q  v" O2 e. r● 满足外部器件的访问时序要求
# Y( F( ?2 d9 Q! N) W7 L所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC 一次只能访问一个外部器件。  l7 A: D! G, ^/ L8 w+ q

; R3 b" E0 f8 gFSMC 具有以下主要功能:% c* l  q' N+ C' E  h' _' {- K
● 连接静态存储器映射的器件:* k" {1 ^! I6 j+ ^0 ]
— 静态随机访问存储器 (SRAM), A; V1 z- Z3 G/ z) @
— 只读存储器 (ROM)
+ K% U) l8 R+ S8 J8 V9 v# a— NOR Flash/OneNAND Flash
6 ?4 K* `9 i* ?" a) Z— PSRAM(4 个存储区域)
5 O% Y* \) r5 A8 a● 两个带有 ECC 硬件的 NAND Flash 存储区域,可检查多达 8 KB 的数据
# U# O/ v5 N+ V8 R+ L% x) t& q● 16 位 PC 卡兼容设备1 O# E* ]& d  d) |$ o
● 支持对同步器件(NOR Flash 和 PSRAM)的突发模式访问
' D7 U2 K. q& ~$ ]● 8 或 16 位宽的数据总线
6 N: ?* G7 f1 j- A● 每个存储区域有独立的片选控制
7 i; l- c' D/ f0 `; {● 每个存储区域可独立配置
' v. l  r7 i  v7 E5 }9 g7 y● 可对时序进行编程,以支持各种器件,尤其是:
1 n+ J' q% B3 F6 D. w1 s— 等待周期可编程(最多 15 个时钟周期)' C  X, d. m( {9 U6 c6 f
— 总线周转周期可编程(最多 15 个时钟周期)
6 ?$ ~# ~+ \( J9 }8 |0 s5 J* x% Y— 输出使能和写入使能延迟可编程(最多 15 个时钟周期)5 D7 ^- g. z) v; ?
— 独立的读和写时序和协议,以支持各种存储器和时序
2 W5 d9 [4 X* {● 写使能和字节通道选择输出,可配合 PSRAM 和 SRAM 器件使用
+ L2 Y% U% {) a. O3 i* q● 将 32 位的 AHB 事务转换为针对外部 16 位或 8 位器件进行的连续 16 位或 8 位访问。0 h& e& U4 \, Y; B5 M6 ]* N$ v
● 用于写入的 FIFO,2 字长(对于 STM32F42x 和 STM32F43x,为 16 字长),每个字为32 位宽,仅用于存储数据,而不存储地址。因此,此 FIFO 仅会缓冲 AHB 批量写事务。从而可对慢速存储器执行写入操作后能快速释放 AHB,以供其它操作使用。每次仅缓冲一个突发事务:如果在有操作正在进行时发生一个新的 AHB 突发事务或者一个单独事务,则 FIFO 将会清空。FSMC 将插入等待周期,直至当前存储器访问已完成)。
8 C( ?' y' v3 S/ W  n$ p2 j6 k/ q● 外部异步等待控制/ W  |: z' P  Q7 I5 G/ I! m/ K
定义外部器件类型和其特性的 FSMC 寄存器通常在启动时进行设置,并且在下次上电或复位前保持不变。但也可随时更改这些设置。
4 w/ C2 W# K" @+ M; w% J* }" r/ x( R
03. FSMC框图
4 M3 @; f  |1 V- @. l
FSMC 包含四个主要模块:
2 O( d  w+ R; D1 ?, D7 K# ^0 A  I● AHB 接口(包括 FSMC 配置寄存器)* z" L/ w/ `. [# d
● NOR Flash/PSRAM 控制器
  _4 P: a. }3 x0 m: K& O5 T● NAND Flash/PC 卡控制器1 q7 H$ o4 r5 T! T# d! }0 t
● 外部器件接口6 r! V# e1 _6 A: z8 C* l
0 o/ W# L, p( n: m2 d& W$ C' e
BOAP}1ERW4E9LD8]DY5K6{G.png
( _% Q5 q2 t( c0 L9 w* a/ Y
, i/ I9 N0 H! T04. 外部器件地址映射( d/ A4 F; J8 q) z" p
从 FSMC 的角度,外部存储器被划分为 4 个固定大小的存储区域,每个存储区域的大小为256 MB:. a8 T' a  R4 s+ ^1 }* Y* x
● 存储区域 1 可连接多达 4 个 NOR Flash 或 PSRAM 存储器器件。此存储区域被划分为 4 个NOR/PSRAM 区域,带 4 个专用片选信号。  Q3 ~9 G  I) M) H( W; P) E
● 存储区域 2 和 3 用于连接 NAND Flash 器件(每个存储区域一个器件)
: W8 |8 p8 X: A# _- p9 |. n8 q● 存储区域 4 用于连接 PC 卡设备9 b7 \$ K2 \0 Q* r1 f, k
对于每个存储区域,所要使用的存储器类型由用户在配置寄存器中定义。
' U5 I! p. s' o( c) h# ^1 L* Y/ S$ Y! R
[GW}GGQ47XHA1R2{22CE2RY.png # o) U4 a# `; |" B* `+ h
, C2 g0 y9 [; H3 S1 J. n
4.1 NOR/PSRAM地址映射
; G. [: _9 o; O& ~! o& mHADDR[27:26] 位用于从 表 185 中所示的四个存储区域之中选择其中一个存储区域。4 v$ V9 y0 e, u& {
7 G9 @: O' i' y

( U# U9 \  R3 `2 h4 M
- B6 T" B  V, V5 SHADDR[25:0] 包含外部存储器地址。由于 HADDR 为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,实际向存储器发送的地址也将有所不同,如下表所示。
! l; B, q: t! g2 o) s& J' A2 k" R5 Y2 k& M
[P2[D1N_@LG]P$~F@L`P]YM.png
6 U2 b$ D' U* w) \4 y% _8 H7 x9 _1 V1 E2 R
4.2 NOR Flash/PSRAM控制器  ^. q& R6 R/ z' U8 r8 W7 @, L
FSMC 会生成适当的信号时序,以驱动以下类型的存储器:7 E8 ^# W$ N" A8 @% z# k5 \
● 异步 SRAM 和 ROM9 w. K5 o, h" y+ N
— 8 位) I  N: l5 D+ ]2 {
— 16 位' y9 Q& B/ L& Y, o. c- _0 k5 ^
— 32 位
$ l4 }4 @& N1 x, a+ c) F0 s: _, ]● PSRAM(Cellular RAM)
0 r' c0 O% j% `+ \9 s— 异步模式
& [3 P4 u8 p( a, u7 |— 突发模式
& Y$ s$ j8 e' c& E$ U* P. G— 复用或非复用- V. D2 p" v) L2 V# ^$ @, ?
● NOR Flash/ w' A7 q# l1 R
— 异步模式或突发模式
7 D  |$ p. K' C0 A— 复用或非复用. j; Y5 G# ]: n6 a5 T, E4 D
# l$ s, O% S4 ?% K
FSMC 会为每个存储区域输出唯一的片选信号 NE[4:1]。所有其它信号(地址、数据和控制)均为共享信号。8 ?9 O, E# f! e  x% G8 n2 G* r

. Y% _5 H8 f, M0 d5 w对于同步访问,FSMC 只有在读/写事务期间才会向所选的外部器件发出时钟 (CLK)。HCLK时钟频率是该时钟的整数倍。每个存储区域的大小固定,均为 64 MB。# |+ x0 Y( U) q  X

' F5 L+ V, h6 {9 ?" t9 G" [每个存储区域都通过专用的寄存器进行配置(请参见 第 32.5.6 节 )。
$ P6 U# L- }! l% w$ G1 x9 I+ n; j/ s0 J  f# M, ?7 g" M5 V9 q
存储器的可编程参数包括访问时序(请参见 表 189)和对等待管理的支持(用于在突发模式下访问 NOR Flash 和 PSRAM)。
' d7 A8 [! r, \3 E0 e: `( o# E; a: B- \1 R
05. 寄存器描述
! H" J9 _; U/ |/ e9 W5.1 SRAM/NOR-Flash 片选控制寄存器 1…4 (FSMC_BCR1…4)

8 V. ?9 p1 f  P6 q/ h% g  nSRAM/NOR-Flash chip-select control registers 1…4, `7 V3 M, n. A9 w
偏移地址:0xA000 0000 + 8 * (x — 1),x = 1…44 ?1 m& f# g# V! ?: a9 i1 R
复位值:0x0000 30DX
% M8 ^; k; F7 U! d0 G) S+ W3 u4 ~1 B7 Y该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和异步或突发 NOR Flash。5 [( r( p6 u, n$ x5 Z4 s$ }

; S$ x  T7 j. `/ v, B; r1 E( h 20200907160036497.png 8 Q( M8 O0 j3 O% d8 v  \$ ~- }. d
( E% W7 B# o% ?1 |" q1 ~; M
5.2 SRAM/NOR-Flash 片选时序寄存器 1…4 (FSMC_BTR1…4)
5 x+ }# o6 h4 ]) X3 mSRAM/NOR-Flash chip-select timing registers 1…47 p' [/ t" E9 B4 ]- T$ T
偏移地址:0xA000 0000 + 0x04 + 8 * (x — 1),x = 1…4
# h$ j$ }. d) S# v8 @& C复位值:0x0FFF FFFF
! |  [$ q& ]4 l7 R, X. b该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和 NOR Flash。如果FSMC_BCRx 寄存器中的 EXTMOD 位置 1,该寄存器将和另外一个寄存器配合来配置写入和读取的时序参数。也就是说有 2 个寄存器可用:一个用于配置读取访问(此寄存器),另一个用于配置写入访问(FSMC_BWTRx 寄存器)。7 V! C, a& t0 x7 G, [
9 a! x( y& z5 J4 q& O
20200907160043463.png
8 z1 c: x( G8 E4 u+ m* f3 y! F( z, g8 C2 Y
5.3 SRAM/NOR-Flash 写入时序寄存器 1…4 (FSMC_BWTR1…4)
4 t/ o. s$ M  a7 ?SRAM/NOR-Flash write timing registers 1…4& g' \& q* v, w8 e; g0 J5 E" N/ ?
偏移地址:0xA000 0000 + 0x104 + 8 * (x — 1),x = 1…4& k5 p6 l$ f; |( p7 b- M
复位值:0x0FFF FFFF1 f  ]# V* h' I* ?
该寄存器包含每个存储区域的控制信息,用于 SRAM、ROM 和 NOR Flash。当 FSMC_BCRx' _  {8 L. B9 C& x# Z1 b
寄存器中的 EXTMOD 位置 1 时,该寄存器将处于有效状态,可以进行写入访问。
  Z# a+ S) v2 e% z' }3 @ 20200907160049491.png
1 m/ \, P: i; Y* f3 U5 }8 j3 Q: m- R0 m  i1 {
; s+ i' @, E' Q8 h% u

/ v5 q% j8 a9 Y4 i' ?
' D: p# @9 f/ ^+ K+ W5 \
赞 收藏 评论0 发布时间:2022-6-14 13:44

举报

0个回答

所属标签

相似技术帖

官网相关资源

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