STM32访问外部存储器的时序计算

具体可以参考STM32的应用笔记AN2784
此处说明时序的设置。
当使用一个外部异步存储器时,用户必须按照存储器的数据手册给出的时序数据,计算和设置下列参数:
● ADDSET:地址建立时间
● ADDHOLD:地址保持时间
● DATAST:数据建立时间
● ACCMOD:访问模式
这个参数允许 FSMC可以灵活地访问多种异步的静态存储器。共有4种扩展模式允许以不同的时序分别读写存储器。
在扩展模式下,FSMC_BTR用于配置读操作,FSMC_BWR用于配置写操作。(译注:如果读时序与写时序相同,只须使用FSMC_BTR即可。) 如果使用了同步的存储器,用户必须计算和设置下述参数:
● CLKDIV:时钟分频系数
● DATLAT:数据延时
如果存储器支持的话,NOR闪存的读操作可以是同步的,而写操作仍然是异步的。 当对一个同步的NOR闪存编程时,存储器会自动地在同步与异步之间切换;因此,必须正确地设置所有的参数。
写或读访问时序是存储器片选信号的下降沿与上升沿之间的时间,这个时间可以由FSMC时序参数的函数计算得到: 写/读访问时间 = ((ADDSET + 1) + (DATAST + 1)) × HCLK 在写操作中,DATAST用于衡量写信号的下降沿与上升沿之间的时间参数:
写使能信号从低变高的时间 = tWP = DATAST × HCLK
为了得到正确的FSMC时序配置,下列时序应予以考虑: ● 最大的读/写访问时间 ● 不同的FSMC内部延迟 ● 不同的存储器内部延迟 因此得到: ((ADDSET + 1) + (DATAST + 1)) × HCLK = max (tWC, tRC) DATAST × HCLK = tWP
DATAST必须满足:
DATAST = (tAVQV + tsu(Data_NE) + tv(A_NE))/HCLK – ADDSET – 4 下表列出了NOR闪存存储器的参数含义和数值
STM32访问外部存储器的时序计算_第1张图片

STM32访问外部存储器的时序计算_第2张图片

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
 异步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。

为了保证较宽的兼容性,可以使用比计算结果更宽的时间限制

你可能感兴趣的:(stm32学习)