EDN China > 设计实例 > 微处理器与DSP > CPU/GPU > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) STM32FSMC机制FlaSh存储器扩展

单片机与嵌入式系统 鲁东大学 潘辉?? 2009年11月27日 ?? 收藏0

  (2)配置存储器基本特征

  通过对FSMC特殊功能寄存器FSMC_BCRi(i为子BANK号,i=1,…,4)中对应控制位的设置,FSMC根据不同存储器特征可灵活地进行工作方式和信号的调整。根据选用的存储器芯片确定需要配置的存储器特征,主要包括以下方面:

  ①存储器类型(MTYPE)是SRAM/ROM、PSRAM,还是NOR Flash

  ②存储芯片的地址和数据引脚是否复用(MUXEN),FSMC可以直接与AD0~AD15复用的存储器相连,不需要增加外部器件;

  ③存储芯片的数据线宽度(MWID),FSMC支持8位/16位两种外部数据总线宽度;

  ④对于NOR Flash(PSRAM),是否采用同步突发访问方式(B URSTEN);

  ⑤对于NOR Flash(PSRAM),NWAIT信号的特性说明(WAITEN、WAITCFG、WAITPOL);

  ⑥对于该存储芯片的读/写操作,是否采用相同的时序参数来确定时序关系(EXTMOD)。

  (3)配置存储器时序参数

  FSMC通过使用可编程的存储器时序参数寄存器,拓宽了可选用的外部存储器的速度范围。FSMC的NORFlash控制器支持同步和异步突发两种访问方式。选用同步突发访问方式时,FSMC将HCLK(系统时钟)分频后,发送给外部存储器作为同步时钟信号FSMC_CLK。此时需要的设置的时间参数有2个:

  ①HCLK与FSMC_CLK的分频系数(CLKDIV),可以为2~16分频;

  ②同步突发访问中获得第1个数据所需要的等待延迟(DATLAT)。

  对于异步突发访问方式,FSMC主要设置3个时间参数:地址建立时间(ADDSET)、数据建立时间(DATAST)和地址保持时间(ADDHLD)。FSMC综合了SRAM/ROM、PSRAM和NOR Flash产品的信号特点,定义了4种不同的异步时序模型。选用不同的时序模型时,需要设置不同的时序参数,如表2所列。在实际扩展时,根据选用存储器的特征确定时序模型,从而确定各时间参数与存储器读/写周期参数指标之间的计算关系;利用该计算关系和存储芯片数据手册中给定的参数指标,可计算出FSMC所需要的各时间参数,从而对时间参数寄存器进行合理的配置。

NOR Flash控制器支持的时序模型

  3 STM2扩展S29GL系列NOR Flash实例

  3.1 S29GL系列NOR Flash简介

  Spansion公司的S29GL系列芯片是采用90nm技术制造的高集成度NOR Flash存储芯片,提供16~128 MB可选容量,支持最快25 ns的页访问速度和11O ns的随机访问速度,带有最大64字节的写缓冲区,以提供更快、更高效的编程,是嵌入式系统设计中大容量存储器扩展的理想选择。本文选用的型号为S29GL512P,容量为512×64K字(总容量64 MB),扩展到NOR Flash控制器管理的BANK1的第2个子BANK。

  3.2 STM32与S29GL512P的电路连接

  S25GL512P可通过控制引脚BYTE选择对芯片的访问单位(字/字节),区别在于:

  ①对于芯片引脚DQ15,字模式时传送最高数据位D15;字节模式时传送最低地址A-1。

  ②字模式时,数据引脚D0~D15上传送数据信号;字节模式时,只有D0~D7上有信号。

  此处,将BYTE上拉到高电平,选择16位的字访问单位。FSMC数据线FSMC_D[15:0]与S29GL512P的D15~D0对应连接;FSMC地址线FSMC_A[25:0]的低25根与S29GL512P的地址线A[24:0]对应连接。

  由于S29GL512P芯片映射到BANK1的子BANK2,可确定其片选线应连接FSMC片选控制线FSMC_NE2。S29GL512P的RY/BY引脚连接FSMC的FSMC_NWAIT引脚,提供等待信号。

  3.3 FSMC的配置

  根据S29GL512P的映射位置,需要对FSMC_BCR2和FSMC_BTR2/BWTR2寄存器进行配置。

  (1)FSMC_BCR2

  配置S29GL512P的读/写采用统一时间参数,只需要设置时间寄存器FSMC_BTR2。配置存储器类型为NORFlash,数据总线宽度为16位(字),不采用地址/数据复用,使能BANK1的子BANK2。

  (2)FSMC_BTR2

  由表2可知,异步NOR Flash时序模型Mode2/B需要设置时间参数DATAST和ADDSET。根据时序图,两个参数的计算公式如下:

公式

  式中:Twc和Trc为所选存储芯片的写周期长度和读操作周期长度;Twp为所选存储芯片的写信号持续长度。根据S29GL512P用户手册,可知参数Twc=Trc=130 ns,Twp=35 ns。设STM32微控制器采用72 MHz主频,则HCLK=(1/72×10-6)s。通过上述公式计算,可取值为:DATAST=2,ADDSET=5。

  为了达到更好的控制效果,还应考虑FSMC自身延迟问题,使用校正公式:

公式

  式中:TAVQV为所选存储芯片访问过程中,从地址有效至数据有效的时间域;Tsu(Data_NE)为STM32特征参数,从数据有效到FSMC_NE(片选)失效时间域;Ttv(A_NE)为STM32特征参数,从FSMC_NE有效至地址有效的时间域。

  TAVQV=130 ns,Tsu(Data_NE)+Ttv(A_NE]=36 ns,对DATAST参数进行校正,可得DATAST=3。

  3.4 应用STM32固件对FSMC进行初始化配置

  ST公司为用户开发提供了完整、高效的工具和固件库,其中使用C语言编写的固件库提供了覆盖所有标准外设的函数,使用户无需使用汇编操作外设特性,从而提高了程序的可读性和易维护性。

  STM32固件库中提供的FSMC的NOR Flash控制器操作固件,主要包括2个数据结构和3个函数。数据结构FSMC_NORSRAMTimingInitTypeDef对应时间参数寄存器FSMC_BTR和FSMC_BWTR的结构定义;

  FSMC_NORSRAMinitTypeDef对应特征配置寄存器FSMC_BCR的结构定义,并包含2个指向对应BANK的FSMC_BTR和FSMC_BWTR寄存器的FSMC_NORSRAMTimingInitTypeDef结构指针。针对上述S29GL512P芯片扩展要求,利用固件库进行的主要初始化操作如下:

程序

程序

  结 语

  STM32作为新一代ARM Cortex-M3核处理器,其卓越的性能和功耗控制能够适用于广泛的应用领域;而其特殊的可变静态存储技术FSMC具有高度的灵活性,对于存储容量要求较高的嵌入式系统设计,能够在不增加外部分立器件的情况下,扩展多种不同类型和容量的存储芯片,降低了系统设计的复杂性,提高了系统的可靠性。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

STM32? FSMC机制? 存储器扩展?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈