STM32CubeMX之FMC同时挂载SDRAM(W9825G6KH)和TFTLCD
提示:上一章介绍了FMC控制TFTLCD屏幕,这一章在上一章的基础上在FMC上挂载一个SDRAM。现在就相当于一个FMC同时挂载了SDRAM和TFTLCD。其中数据线是共用的。
SDRAM原理图如下:
提示:以下是本篇文章正文内容,下面案例可供参考
一、FMC外设地址映射
FMC外设的功能框图
从FMC的角度来看,外部的存储设备被分为几个固定大小的Bank,每个bank 256 MB。整个FMC外设映射地址的划分如图:
Bank1
Bank1的地址空间为:0x6000 0000 - 0x6FFF FFFF,支持外接 Nor Flash、PSRAM、SRAM等设备,还可以外接DM9000等类存储设备。 整个Bank1的地址空间被划分为四个子bank,每个子bank的大小为64MB, 刚好对应 FMC外设的地址总线(FMC_A[0:25])有26条(2^26=64MB)。
FMC还有两条内部总线ADDR[27:26],用这两路控制片选信号,如下表:
Bank3
只能外接Nand Flash设备
SDRAM Bank
只能外接SDRAM设备,我们在程序里使用SDRAM中的变量时,寻址起始地址采用0xC0000000。另外需要注意的是这里为什么采用0XC0000000呢?看下图配置参数时cubemx内指定的SDRAM bank1,而bank1 的起始地址就是0xC0000000。如果是采用的bank2那起始地址就要设置为Sdram bank2的起始地址0xD0000000。
二、CubeMX参数设置
三、参数详解
SDRAM基本参数配置:SDRAM(W9825G6KH) 的数据手册中即可看到
① 速度等级:当CL=3时最高速度为166Mhz。因为STM32F743的HCLK配置成了240Mhz,所以需要进行二分频,使SDRAM的时钟频率为120Mhz。 ② 行地址宽度和列地址宽度:有A0-A12 总共13条行地址线,有A0-A8总共9条列地址线。 最后配置如下:
SDRAM时序参数配置
SDRAM的时钟频率为120Mhz,一个时钟周期就是8.33 ns,所以下面参数的单位都是8.33ns。
① LoadToActiveDelay:TMRD 定义加载模式寄存器的命令与激活命令或刷新命令之间的延迟,最小值为2个clk。 ② ExitSelfRefreshDelay:从退出自刷新到行有效的时间延迟,最小72ns,所以参数设置为9 ③ SelfRefreshTime:自刷新周期,最小是42ns,所以设置为6 ④ RowCycleDelay(tRC):刷新命令和激活命令之间的延迟,最小值为60,所以设置为8
⑤ WriteRecoveryTime:写命令和预充电命令之间的延迟,在CL=3的情况下,最小是2个clk,此项设置为4预留一点余量。 ⑥ RPDelay(tRP):预充电命令与其它命令之间的延迟,最小15ns,此项设置为2
⑦ RCDDelay(tRCD):激活命令与读/写命令之间的延迟,最小15ns,所以设置为2。