在项目中遇到STM32操作外部扩展RAM数据的时候,读写十分费时间,查得cubeMX用FSMC扩展外部RAM的配置时,将时间相关参数都设置成默认最大,确保能够读取到数据,但是导致访问外部RAM特别费时。
通过分析IS62WV51216BLL的读写时序图和时间特性参数,得到较合理的时间参数,大大优化了外部RAM的操作时间。下面先介绍下前面3个参数:
1.Address setup time: 从设置引脚地址开始到能够读取数据的时间段
2.Data setup time: 设置完地址后,能够读取数据总线的时间段
3.Bus turn around: 两次操作时间的间隔时间,根据只读操作,只写操作,读写操作可能不同。
图1 上图中的1就是.Address setup time , 2就是Data setup time。 通过配置FSMC的ADDSET寄存器得到Address setup time,配置DATAST寄存器得到Data setup time。关于这两个参数的设置步骤如下: 步骤1: 首先查外部RAM的时间特性参数,得到外部RAM读,写操作最快的周期时间,也就是每次读,写需要的最短时间。
根据STM32的操作时序图1
(ADDSET+1)*Hclk+(DATAST+1)*Hclk+ 2*Hclk > 55ns (1)
步骤2:然后由于每次FSMC切换地址后(即读另外地址时候),外部RAM需要一定的时间才能将数据打到数据线上,该时间也通过查外部RAM的时间特性参数得到。
根据STM32的操作时序图1
(ADDSET+1)*Hclk > 10ns (2)
步骤3:一般我们在访问外部RAM的时候,肯定是希望越快越好,因此只要我们设置能满足(1),(2)条件,肯定设置尽可能时间小,速度快。
|