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

【经验分享】STM32CubeMX之FMC同时挂载SDRAM(W9825G6KH)和TFTLCD

[复制链接]
STMCU小助手 发布时间:2022-3-7 23:29
总结" N5 E. N& r1 C6 a) u3 r% s4 G* ~* V2 @
SDRAM原理图如下:; A6 t8 `1 X3 l6 t6 @! O- H3 {
' {+ f: R5 g$ p' B9 c. T
YT~B$O]9M)(KP[V2FSQYG.png , z' g# @$ y  l" w9 A) J1 U/ v

# H; M" Z; w% d+ @' F5 D提示:以下是本篇文章正文内容,下面案例可供参考% v" ]# {( g. z2 W8 p

% B1 l6 {3 s. B. U: U0 Z; ?' X一、FMC外设地址映射5 j3 h5 }4 K# f$ B: q5 {
FMC外设的功能框图# N( O' _* p% \) |1 f
, g9 P5 j- y/ _: n! x+ M
JHV7{@MQB[B30H5EEN4(C{J.png 3 ~5 K2 T; ?' ?! N3 ~
. y  m* k. }: v! T
从FMC的角度来看,外部的存储设备被分为几个固定大小的Bank,每个bank 256 MB。整个FMC外设映射地址的划分如图:: m: q4 v7 L( f# L/ d' G
) n5 u  L" J+ f( L  n
STHQY@~PN{B%WLI]A(TOFKK.png - n# ~' H* T! n7 \
3 F! c3 Q2 N! c! [
Bank1. S1 H" f- n) E' G, E; B9 ]6 a
  1. Bank1的地址空间为:0x6000 0000 - 0x6FFF FFFF,支持外接2 O5 P: p' |/ k3 ]; K% @1 z! c
  2. Nor Flash、PSRAM、SRAM等设备,还可以外接DM9000等类存储设备。
    " i6 o; L# @% ^" ~6 B, R
  3. 整个Bank1的地址空间被划分为四个子bank,每个子bank的大小为64MB,
    $ |+ V3 x2 x# w
  4. 刚好对应        FMC外设的地址总线(FMC_A[0:25])有26条(2^26=64MB)。
复制代码
1 e) o5 Y2 q8 l
FMC还有两条内部总线ADDR[27:26],用这两路控制片选信号,如下表:
9 o! k# r& H  o$ e NQ6C]@H8CHYR`L3BY`C~]MM.png
( `( O. Y+ T: `0 }
# ^3 Z- B7 S* [2 bBank35 _1 z" b& N- |, K/ }
只能外接Nand Flash设备% d  o  f& B4 ]3 u
0 N/ a) s# _3 K, P3 j
SDRAM Bank4 A9 f- b" N% G# B* U; v% w
只能外接SDRAM设备,我们在程序里使用SDRAM中的变量时,寻址起始地址采用0xC0000000。另外需要注意的是这里为什么采用0XC0000000呢?看下图配置参数时cubemx内指定的SDRAM bank1,而bank1 的起始地址就是0xC0000000。如果是采用的bank2那起始地址就要设置为Sdram bank2的起始地址0xD0000000。2 [' O0 [6 ?* ]
' W" `' N6 z7 J, t3 b/ V
8AU_SI}FL{}Y(L)NU~7EUCC.png
; b; H3 t4 _* m; G1 O  d. o  M
- M& J# q9 l4 P! g4 r. I二、CubeMX参数设置+ U; g: k( A! I3 _/ Q

+ q4 C: f# [4 f! W/ r8 I Q`]RJN@V]QJYN~M}27W5WT1.png
9 e7 ~) E* y) t: U
- @/ k7 Q6 r/ a2 S9 e8 {三、参数详解

" g$ f, o4 ~# u) pSDRAM基本参数配置:SDRAM(W9825G6KH) 的数据手册中即可看到' ^" Z$ k: s8 I5 T% k1 {
% Y! Z( f; [; C5 j
① 速度等级:当CL=3时最高速度为166Mhz。因为STM32F743的HCLK配置成了240Mhz,所以需要进行二分频,使SDRAM的时钟频率为120Mhz。; o$ `# T" }6 l2 N

" v9 F, R2 o7 P, |  {# q$ |& V DV9~`M7F~NCPR5~8MM3`C50.png " w/ R1 n' d9 Y3 V! F: b

, K4 Q! w9 u2 D② 行地址宽度和列地址宽度:有A0-A12 总共13条行地址线,有A0-A8总共9条列地址线。
; I( B5 p& ~+ G$ d" |最后配置如下:; N% l3 g3 p% i. \  ^

; U( Q) {5 K/ n9 `7 N; ^+ ^- C- f7 V VH@_RF9[CX[OU)6T[2K3OT0.png
+ Z4 ^0 `2 y' R% Z* k
* Q! i& o# F9 [) H. j9 h# W- PSDRAM时序参数配置, n, x  ]* k" h$ V- J6 J" b, J

. R/ S* J! c% F" u6 xSDRAM的时钟频率为120Mhz,一个时钟周期就是8.33 ns,所以下面参数的单位都是8.33ns。( P5 r- {6 F, ?6 D8 \8 u
# ]; ]0 P" }+ L9 N- z
① LoadToActiveDelay:TMRD 定义加载模式寄存器的命令与激活命令或刷新命令之间的延迟,最小值为2个clk。
* s* W) Q. Y3 }4 P) @. S
9 A  h+ b8 A8 m) _7 F4 e6 i F(BS241G]H0I$}WCBCFDG{A.png $ C" [" q7 b' P* e. f

; n8 m1 U# \3 h② ExitSelfRefreshDelay:从退出自刷新到行有效的时间延迟,最小72ns,所以参数设置为9
( r$ {0 I0 k2 o% v. C; y9 Y0 X8 a7 `$ O
5KLIY47BKR43IZHBIF6)R52.png
+ c! N3 q2 t! |$ h2 z: f& p% ^  V2 i9 v: |# E3 M; P5 A
③ SelfRefreshTime:自刷新周期,最小是42ns,所以设置为6
" B2 U. v1 N8 ~6 I* N8 u0 [2 }$ \# @+ p, P, w0 y2 A7 U% z

$ n% F( l' U3 |4 v' R BONKU(SXAYD@]AHYRP8NYZ8.png
/ U9 c0 k# U! C# i* c  Y
' O$ K7 y: n6 n④ RowCycleDelay(tRC):刷新命令和激活命令之间的延迟,最小值为60,所以设置为8
+ V6 R6 M: ^2 h: y8 a& V  H. w  v% i$ s+ C2 h
$@WNPD{~VZX8C0IXD4(0O$H.png 2 X' H0 `- |6 G& c/ j
  \1 g4 A+ I' i5 u4 Q5 r
⑤ WriteRecoveryTime:写命令和预充电命令之间的延迟,在CL=3的情况下,最小是2个clk,此项设置为4预留一点余量。
; S: x- Z" b& _2 G  i
  I0 V" V8 q0 k' } U60BIC%{LDIL`@74][JIKLS.png ! Z* N6 [( [! q0 Z

: V: a2 m" H8 {⑥ RPDelay(tRP):预充电命令与其它命令之间的延迟,最小15ns,此项设置为2
/ O( F) Q* `$ p# ~$ s( k1 _
. f0 [/ w% ^# x. W  z# D/ |1 x YU6NJJX%5P46B7IP)KXR{BQ.png 1 E  q9 h. Z/ v$ f

! \3 M9 N; W. L3 w+ i7 a⑦ RCDDelay(tRCD):激活命令与读/写命令之间的延迟,最小15ns,所以设置为2。
  e2 t1 b5 H! Y' C6 a; r  R
! C1 h' m1 p6 n' C( _% Y  Q MR7I]$P7WAPXPY9(REH`)3E.png
2 L5 s, M1 {  E& w2 O; j& E4 e/ P6 p* d9 l, h2 m

. r$ `6 a4 i/ w- ]+ U! D9 \
! s/ W! U8 x2 H5 e  q/ s
赞 收藏 评论0 发布时间:2022-3-7 23:29

举报

0个回答

所属标签

相似技术帖

官网相关资源

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