教程 | SDRAM读写时序介绍(配时序图)
本文为明德扬原创文章,转载请注明出处!
最近公司承接了一个车载视频拼接的项目,该项目使用到了LVDS高速接口和DDR3接口,摄像头采集的视频图像数据需要先存入DDR3中然后与通过LVDS传输的主机视频数据进行拼接输出,最终在屏幕上显示画中画的效果。
在调试DDR3的过程中,我有一些高速存储器的使用心得,特分享给大家。
首先我先介绍一下SDRAM存储器的读写时序。
SDRAM即同步动态随机存储单元,主要用来存储较大容量的数据。我们都知道,数据在处理的过程中一般都需要进行存储,开发板上常见的存储方式有FPGA内部芯片RAM资源、外部Flash存储器和外部SDRAM存储器。
除了Flash,其他两种存储器都是掉电即丢失数据,由于Flash掉电能够保持内部数据,因此Flash主要用来固化程序或者固化参数。FPGA片内的RAM资源稀少而且珍贵,在大容量存储场合如图像数据缓存时,只能选择外部存储如SDRAM、DDR3等存储器。在MP801开发板上就含有三块SDRAM芯片,可以满足较大数据的高速读取。这也是新手在进阶过程中所面对的一个较复杂的接口,很多人对SDRAM的工作方式及接口时序不是很清楚。
经过查阅数据手册与搜集相关的技术文档,我整理了一篇有关SDRAM接口读写时序的文章,希望能够帮助不了解的同学对SDRAM数据读写有更进一步的认识。
一、SDRAM初始化
在SDRAM内部有一个逻辑控制单元,并且有一个模式寄存器为其提供控制参数。每次开机时SDRAM都要先对这个控制逻辑核心进行初始化,关键阶段就在于模式寄存器(MR, Mode Register)的设置,简称MRS(MR Set)。
SDRAM必须以预定义的方式启动和初始化。在电源同时作用于Vdd和Vddq后开始初始化SDRAM,此时的时钟稳定并且将DQM和CKE信号拉高。在向SDRAM发命令之前需要有100us的延时,此时SDRAM不执行任何操作。在100us延时满足后,