历史上的今天
返回首页

历史上的今天

今天是:2025年08月10日(星期日)

正在发生

2021年08月10日 | 1.3.3 SDRAM的设置

2021-08-10 来源:eefocus

2440的CPU通过内存控制器与外部的SDRAM相连,开发板上外接有64MB的SDRAM。


有关SDRAM的详细介绍,可以参考《高手进阶 终极内存技术指南-完整进阶版》,附链接https://max.book118.com/html/2017/1224/145792037.shtm


SDRAM的结构和Flash不同,操作Flash时只需要给定一个地址即可,但是操作SDRAM需要三个地址,分别是块地址,行地址,还有列地址。


使用SDRAM,我们只需要设置内存控制器即可,当我们读SDRAM的数据时,内存控制器会:


判断范围:根据电路图可以看出,SDRAM接到2440的第六块,起始地址为0x3000,0000;

根据类型(SDRAM)拆分地址为块地址,行地址,列地址;(这里需要设置行地址和列地址分别几条线)

读数据。

在这里插入图片描述

下面是2440需要设置的相关的寄存器。

List item

1.BWSCON,设置外接SDRAM的位宽和等待状态的寄存器。2440外接两个16位的SDRAM,所以DW6设置为10,如果外接的内存类芯片速度很慢,在发出相关时序之后还是不能读取数据,这时候就可以发出WAIT信号,等待一段时间后再去读取数据,根据电路图,并没有外接WAIT信号,所以WS6设置为0,ST6是用于SRAM,我们外接的是SDRAM,故不使用UB/LB,nWBE的意思写某个字节的时候,是否真正写进去,我们的内存是32位的,如果只想去修改其中的某个字节,这个时候就需要用到这个引脚来帮助我们确定具体要写入哪个字节。同理,nBE就是确定想要读哪个字节 。这里我们使用了nWBE但不用nBE,这是由于我们设置的内存类设置为32位,这样每次都会读进来4字节,然后内存控制器会挑出我们要的字节,所以不用设置。一般来说,我们把BANK7设置和BANK6一样,所以这个寄存器设为0x2200,0000。

在这里插入图片描述
在这里插入图片描述

2.BANKCONn,块控制器,MT设置为11,选择SDRAM控制器,SCAN为列地址的线数,根据芯片手册为9位,设为01,Trcd表示发出行地址后多久可以发出列地址,设置为20ns,所以BANKCON6,BANKCON7寄存器设置为0x18001。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.REFRESH,SDRAM刷新控制寄存器,SDRAM和DRAM一样,使用时需要动态刷新,所以要使能刷新,设置为自动刷新模式,刷新的周期需要根据芯片手册设定,64 / 8192 = 7.8us,表示7.8us刷新1行。我们的HCLK也为100MHz,所以设为1269 = 0x4F5。

在这里插入图片描述

Trp意思为SDRAM行预充电时间,具体功能不熟悉,但是根据芯片手册可以设为20ns,也就是2个周期。

在这里插入图片描述

搜索Tsrc找不到结果,根据公式Trc=Tsrc+Trp尝试搜索Trc,意思还是不清楚,但是值可以设置为70ns,所以Tsrc = Trc - Trp = 50ns,所以Tsrc设置为01,所以REFRESH设置为0x8404f5。

在这里插入图片描述
在这里插入图片描述

5.BANKSIZE,首先,BK76MAP设置为001,因为外接的是64MB。然后,burst operation表示是否可以连续访问,即一次访问多个字节 ,设为1,低功耗模式使能设为1,SCLK_EN根据推荐值设为1,所以BANKSIZE = 0xb1。

在这里插入图片描述

6.MRSRBn,除了CL外,其他只能选择固定值。内存控制器读SDRAM时,发出块地址,然后行地址,然后列地址,发完之后它并不能像SRAM那样马上读取数据而是需要等待一定的时钟周期之后,才能读取数据。芯片手册描述如下,可以设置为2或3个时钟周期。这里我们设置为2个clock。需要注意的是,这个值设定之后是会发给SDRAM的,SDRAM的mode register(含有CL)会保存这个值,它以后就会在收到列地址之后,过两个时钟周期才返回数据。 所以MRSRB6,MRSRB7设置为0x20。

在这里插入图片描述

综上,2440中SDRAM的初始化设置完毕,然后可以试验一下SDRAM是否可以正常使用。测试代码如下图。

在这里插入图片描述

推荐阅读

史海拾趣

ECM [ECM Electronics Limited.]公司的发展小趣事

面对日益严重的环境问题,ECM Electronics Limited.积极响应国家节能减排的号召,将绿色发展和可持续发展作为企业的重要战略。公司采用环保材料和节能技术,降低产品能耗和排放。同时,公司还积极参与环保公益活动,推动行业绿色发展。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

Accelink Technologies Co Ltd公司的发展小趣事

面对日益严重的环境问题,ECM Electronics Limited.积极响应国家节能减排的号召,将绿色发展和可持续发展作为企业的重要战略。公司采用环保材料和节能技术,降低产品能耗和排放。同时,公司还积极参与环保公益活动,推动行业绿色发展。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

安美通(APPCON)公司的发展小趣事

在创业初期,安美通面临着激烈的市场竞争和技术瓶颈。然而,公司的创始团队凭借对无线通信技术的深刻理解和丰富经验,成功研发出了一系列低功耗无线远传产品,为水气电及工控行业提供了创新的解决方案。这些产品迅速获得了市场的认可,为公司的初步发展奠定了坚实的基础。

AdaptivEnergy公司的发展小趣事

随着市场的不断变化和客户需求的升级,安美通意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了对研发的投入,积极引进高端人才,并与多所高校和研究机构建立了紧密的合作关系。通过持续的技术创新,安美通成功推出了一系列具有自主知识产权的新产品,进一步巩固了其在行业内的领先地位。

Exclara Inc公司的发展小趣事

在电子行业这个竞争激烈的领域里,技术的更新换代速度非常快。为了保持领先地位,Exclara高度重视研发投入,不断引进高端人才和先进设备,加强研发团队建设。通过持续的研发投入,公司不仅保持了技术的领先地位,还成功开发出了一系列具有自主知识产权的核心技术。

Advanced Milliwave Laboratories Inc公司的发展小趣事

随着技术的不断成熟和产品的不断优化,AML开始积极拓展市场。公司参与了多个国际电子展会,与全球各地的客户建立了联系。通过展示其独特的技术优势和高质量的产品,AML逐渐在微波技术领域建立了良好的品牌形象。同时,AML还加强了与合作伙伴的合作关系,共同开拓市场,实现互利共赢。

问答坊 | AI 解惑

【SynPlify技术问题】综合时出错,错误很奇怪

在用SYNPLIFY综合时出现以下错误:internal error in m_proasic.exe我用的ACTEL的开发软件,但是相同的代码如果用QUARTUS综合的话,就不会出现这种错误,并且QUARTUS的综合工具我也是选用的SYNPLIFY。哪位知道原因的,请告诉我,不胜感激。谢谢。…

查看全部问答>

高分求助!MotoQ9h 刷机问题!

需求:MotoQ9h手机刷Windows Mobile 6.5 操作系统(.nb0文件),通过USB把手机模拟成网卡,获得独立IP,然后通过与PC机桥接成功后,利用platform 刷机 问题: PC机是Windows XP SP3在微软的fareast域内,但同时也加入到了Test OU network PC机 ...…

查看全部问答>

51单片机

今天自己总算有焊有了属于自己的单片机最小系统!!!!!…

查看全部问答>

请教

请教调试这个程序的时候 每次到延时子程序Delay的for(k=0;k…

查看全部问答>

搞单片机开发有前途吗?

最近上网看了很多贴子,感觉单片机开发工资偏低,且没什么前途,我明年毕业也是搞单片机开发的,感觉很前途迷茫。希望那些资深单片机工程师能给点建议。…

查看全部问答>

赛前训练(失真度测试仪)

本帖最后由 paulhyde 于 2014-9-15 09:07 编辑  …

查看全部问答>

三星四核Cortex A9 Exynos 4412公开资料下载(无需签署NDA)

三星四核Cortex A9 Exynos 4412公开资料下载(无需签署NDA),这是公开部分,不是完整版,下载之前请慎重,三星网站应该可以下到这个。 [ 本帖最后由 gooogleman 于 2013-10-26 23:35 编辑 ]…

查看全部问答>

51单片机C语言数组的使用方法(易懂)

新手小白,自学单片机中。对数组的使用完全不了解啊,网上看的好多资料看不明白。哪位大神能讲解讲解么。。。在线求助。…

查看全部问答>