初学SDRAM笔记1--SDRAM的初始化过程

5 篇文章 1 订阅

 2017年的9月份我学习了怎么操作SDRAM,然而仅仅过了三个月,现在就忘的一干二净了,又得从头来起。这个元件目前在工作中用不到,所以平时不接触就忘的快了。

         这次我再次来操作SDRAM,把学习的经过记录下来,而且写的尽量详细一些。这样下个月、下下个月再要用它的时候,只要翻翻这些笔记就行了吧。

 

首先要了解的SDRAM的初始化流程:

         SDRAM并不是上电后就立即开始读写数据的,它需要按步骤初始化,对存储矩阵进行预充电、刷新并设置模式寄存器。

初始化流程图如下:


该流程的说明如下:

a、给SDRAM上电,并提供稳定的时钟,至少100us

b、发送“空操作”(NOP)命令

c、发送“预充电”命令,控制所有BANK进行预充电,并等待tRP的时间

         tRP表示预充电和其他命令之间的延时

d、发送至少2个“自送刷新”命令,每个命令后需等待tRC时间

 tRC表示自送刷新时间

e、发送“加载模式寄存器”命令,配置SDRAM的工作参数,等待tMDR时间

         tMDR表示加载模式寄存器命令与行有效或刷新命令之间的延时

f、初始化流程完毕,可以开始读写操作

上面的几个延时时间和具体的SDRAM型号有关,要查询数据手册才能获知。我这里用的SDRAM型号是:IS42-45S16400J


STM32F429的FMC可以直接操作SDRAM,它的库函数有个结构体是专门控制SDRAM的各种时序的,上面讲到的三个延时都包含在里面。它的结构体如下:


1、tMRD:加载模式寄存器命令后的延迟。查询数据手册得知,tMRD的值是2个时钟周期。它的时序图如下:(手册上的图很多,要找tMDR直接看每张时序图的command行有没有LOAD MODE REGISITER,我在第38页找到了这张图)


2、tRC 自动刷新时间

         继续翻数据手册,查找这个tRC的值。在PDF里面查找“RC”,然后会看到关于它的介绍和一个表格。这个tRC在55到63ns之间



3、tRP预充电和其他命令之间的延时

         在上图中,我们可以看到tRP是15ns

         到这里初始化要用到的3个延时时间就搞清楚了。

 

可是为什么要预充电呢?下面来看一下专业的解释:

        SDRAM的寻址具有独占性,所以在进行完读写操作后,如果要对同一个Bank的另一行进行寻址,就要将原来有效(ACTIVE)的行关闭,重新发送行/列地址。Bank关闭当前工作行,准备打开新行的操作就是预充电。

         预充电可以通过独立的命令控制,也可以在每次发送读写命令的同时使用“A10”线控制自动进行预充电。实际上,预充电是一种对工作中所有存储阵列进行数据重写,并对行地址进行复位,以准备新行的工作。

 

那为什么又要“自动刷新”呢?

         SDRAM要不断的进行刷新才能保留住数据,因此它是DRAM最重要的操作。预充电是对一个或所有Bank中的工作行的操作,并且不定期;而刷新具有固定的周期,依次对所有的行进行操作,以保证那些久久没被访问的存储单元数据正确。

         刷新操作分两种:“自动刷新”和“自我刷新”。发送命令后CKE时钟为有效时(低电平),使用自动刷新操作,否则使用自我刷新操作。

         不论使用何种刷新方式,都不需要外部提供地址信息,因为这个是内部操作。

        

         对于“自动刷新”,SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动地依次生成行地址,每收到一次命令刷新一行。在刷新过程中,所有的Bank都停止工作,而每次刷新所占用的时间为N个时钟周期。刷新结束后才可进入正常的工作状态,也就是说在这N个时钟期间内,所有工作指令只能等待而无法执行。一次次的按行刷新,刷新完所有行后,将再一次对第一行重新进行刷新操作,这个对同一行刷新操作的时间间隔,成为SDRAM的刷新周期,通常为64ms。显然,刷新会对SDRAM的性能造成影响,但这是SDRAM的特性决定的,也是SDRAM相对于SRAM取得成本优势的同时所付出的代价。

         “自我刷新”则主要用于休眠模式低功耗状态下的数据保存,也就是说即使外部控制器件不工作了,SDRAM都能自己确保数据正常。在发出“自我刷新”命令后,将CKE置于无效状态(低电平),就进入自我刷新模式。此时不再依靠外部时钟工作,而是根据SDRAM内部的时钟进行刷新操作。在自我刷新期间,除了CKE之外的所有外部信号都是无效的,只有重新使CKE有效才能退出自我刷新模式并进入正常操作状态。






  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值