历史上的今天
返回首页

历史上的今天

今天是:2024年09月17日(星期二)

2021年09月17日 | ARM9_S3C2440学习(七)SDRAM学习总结

2021-09-17 来源:eefocus

1.SDRAM的burst mode
SDRAM是一种命令型动作的设备,就算读写资料只有一个也要先下命令才可以用,为了增加工作效率,就产生了一种传送一个命令,写多个数据的模式,这就是burst mode。


burst mode是一种利用内部列地址发生器来工作的高速读写模式,只要设置最开始的列地址,后面的地址就可以通过内部的列地址发生器来自动生成。

 

2.为什么要做precharge动作?
关闭正在作用的SDRAM bank,算是一种结束命令,后面可以下新的命令。我想这是和SDRAM内部管理有关。(这是从网上查到的,感觉不够详细,也不太理解)

 

3.自动刷新功能?
动态存储器(Dynamic RAM)都存在刷新问题。这里主要采用自动刷新方式,每隔一段时间向SDRAM发一条刷新命令。

 

4.SDRAM的地址线
在我们一般用的什么SRAM啊,PSRAM啊,RAM啊,一般而言都是有多少根地址线,然后可以算出寻址空间,比如有11根地址线,那寻址空间就是2的11次方减1。但是SDRAM是分列地址和行地址的,行、列地址线是复用的,所以有时候我们看到说寻址空间有多大多大,但是看看地址线怎么就那么几根啊,呵呵。SDRAM一般还有2根BANK的线,分成4个BANK,在有的处理器的SDRAM控制模块中,这两根线可能映射到地址线的某两根去。一般芯片常按照以下方式写芯片的配置,比如4Meg x 4 x 16,那这个芯片就是256Mbits。其中16指数据线是16根,中间一个4是只分4个BANK, 每个BANK是4Meg。

 

5.SDRAM的初始化
SDRAM上电后使用前必须要经过一段初始化操作才可以使用。这个操作过程是标准的过程。这个过程如下

precharge
auto-refresh
Load Mode Register
Normal Read/Write
在上电后输入初始化命令之前,最少要100us延迟(这个其实很容易满足,呵呵)。

在输入precharge命令后,因为必须是对所有BANK进行Precharge,所以A10这个管脚要设置成高,因此在Precharge后面要做一个读的操作,这个操作最主要的是在SDRAM的寻址空间里设置的地址必须是A10是高的。


在输入Auto-refresh命令后,一般要跟几句空操作或者读什么之类的,反正要达到延迟的目的,以使得SDRAM有时间来完成refresh。


之后就是要设置SDRAM的模式寄存器,这个寄存器里一般设置了burst长度,CAS,burst类型,操作模式,还有是设置SDRAM是工作在单个读写操作还是burst操作下。而这个寄存器的设置也是通过地址线来设置的,所以在发出Load Mode Register命令后要做一个操作可是使得在SDRAM的地址线上出线的值就是你要设置的值。这里很有必要提醒的一下的是,这个操作是8位的操作,切记切记。


设置完模式寄存器后就进入正常操作模式。


实际上具体的操作要跟选用的处理器的SDRAM控制模块相结合来设置。对于这些初始化命令比较直观的理解就是拿逻辑分析仪来分析。


在这里需要提醒一下CAS这个参数很重要。还有SDRAM必须要刷新的,因此刷新频率可以按照手册算出来的,但是设置的高一点也是可以的。常常SDRAM都有工作频率,但是也可以工作在低一点的频率上,比如PC133的,你工作到100也是可以的,设置基本不需要修改。

 

6.基本读写操作
SDRAM的基本读操作需要控制线和地址线相配合地发出一系列命令来完成。先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。BANK激活命令后必须等待大于tRCD(SDRAM的RAS到CAS的延迟指标)时间后,发出读命令字。CL(CAS延迟值)个工作时钟后,读出数据依次出现在数据总线上。在读操作的最后,要向SDRAM发出预充电(PRECHARGE)命令,以关闭已经激活的页。等待tRP时间(PRECHARGE)命令,以关闭已经激活的页。等待tRP时间(PRECHAREG命令后,相隔tRP时间,才可再次访问该行)后,可以开始下一次的读、写操作。SDRAM的读操作只有突发模式(Burst Mode),突发长度为1、2、4、8可选。


SDRAM的基本写操作也需要控制线和地址线相配合地发出一系列命令来完成。先发出BANK激活命令(ACTIVE),并锁存相应的BANK地址(BA0、BA1给出)和行地址(A0~A12给出)。BANK激活命令后必须等待大于tRCD的时间后,发出写命令字。写命令可以立即写入,需写入数据依次送到DQ(数据线)上。在最后一个数据写入后延迟tWR时间。发出预充电命令,关闭已经激活的页。等待tRP时间后,可以展开下一次操作。写操作可以有突发写和非突发写两种。突发长度同读操作。

 

7.其他
我们有时候看到有的原理图上数据线有倒过来接的,其实这个无所谓的,反过接,写进去的就是反的,但是读出又反了一下,反反两次正好没反。


延伸一下到DDR,其实DDR就是SDRAM外面加了一个乌龟壳。因此初始化是一样的。当然DDR一是多了一个把时钟频率反相的时钟,因此有2个相位差180度的时钟。这两个一般都是用同一个时钟源产生,一致性会比较好。还有多了2个DQS,这个也是一个时序要求,一般CPU的控制模块都有设置好了。如果你使用的CPU不含有控制模块,那用FPGA去做一个控制模块的话,那就要好好研究时序了。


在有些处理器的控制模块中,由于EMI的设置,地址线映射关系复杂,因此推算会比较麻烦,一般如果没有什么映射的话,还是很容易操作的。

推荐阅读

史海拾趣

ETTINGER公司的发展小趣事

Ettinger,这个源于英国的皮具奢侈品牌,由Gerry Ettinger在1934年创立。自创立之初,Ettinger就致力于提供高品质的皮具产品,凭借其精湛的皮具制作工艺和独特的英格兰式设计风格,逐渐在市场上树立了良好的品牌形象。初期,Ettinger主要专注于手工制作皮具,通过不断提升产品质量和设计水平,赢得了消费者的青睐。

DIOO公司的发展小趣事

随着市场竞争的加剧和消费者需求的不断变化,DIOO公司意识到品牌重塑和多元化发展的重要性。在近几年中,DIOO公司加强了品牌宣传和推广力度,通过推出新的品牌形象和广告活动,提高了品牌知名度和美誉度。同时,DIOO公司还积极拓展产品线,推出了包括智能家居、智能穿戴设备、游戏硬件等在内的多元化产品系列,进一步满足了消费者的多样化需求。

Cogent_Computer_Systems公司的发展小趣事

随着国内市场的逐渐饱和,Cogent_Computer_Systems公司开始将目光投向海外市场。公司制定了一系列国际化战略,包括参加国际电子展会、建立海外销售网络、拓展国际合作伙伴等。这些举措使得公司的产品和服务逐渐走向全球,赢得了更多国际客户的认可。国际化战略的实施不仅拓宽了公司的市场版图,也提升了公司的品牌影响力和国际竞争力。

EM Microelectronic-Marin SA公司的发展小趣事

进入1980年代,随着技术的不断进步,ASIC(应用特定集成电路)技术开始兴起。1982年,Mikron Integrated Microelectronics(EM Microelectronic-Marin的前身之一)开始了ASIC技术的研究,并在随后的几年中取得了显著成果。1987年,其奥地利分公司开始专注于识别和智能卡芯片的开发,这一领域的成功为公司带来了新的增长点。

Aptina (ON Semiconductor)公司的发展小趣事

在快速发展的同时,Aptina注重技术研发与专利布局。公司投入大量资源用于研发,不断推出具有创新性的图像传感器产品。这些产品不仅提升了公司的市场竞争力,还为Aptina积累了大量的技术专利。这些专利成为了公司宝贵的资产,为公司的长期发展奠定了坚实基础。

迪一电子公司的发展小趣事

作为一家有远见的企业,迪一电子公司始终关注社会责任和可持续发展。公司积极参与环保和公益活动,推动绿色生产和可持续发展。同时,公司还注重员工培训和福利保障,为员工提供良好的工作环境和发展机会。这些举措不仅提升了公司的社会形象,也增强了员工的归属感和凝聚力。

问答坊 | AI 解惑

DSP新手FAQ汇总(ZT)

DSP 新手FAQ汇总 1、TI DSP的选型主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O口数量、中断数量、DMA通道数等。DSP的主要供应商有TI,ADI,Motorola,Lucent和Zilog等,其中TI占有最大的市场份额。 TI公 ...…

查看全部问答>

高速FPGA系统的信号完整性测试和分析

1. 引言       随着FPGA的设计速度和容量的明显增长,当前流行的FPGA芯片都提供高速总线,例如DDR内存总线,PCI-X总线、SPI总线;针对超高速的数据传输,FPGA通过集成SerDes提供高速串行IO,支持各种诸如PCI-E、GBE、XAUI等高 ...…

查看全部问答>

菜鸟问题

00H,02H这个H是什么意思?…

查看全部问答>

请问一个关于IEEE802.1Q的问题

现在的以太网芯片有支持IEEE802.1Q的吗? 我的意思就是有没有芯片硬件就能够自动识别VLAN的? 如果都不支持的话,那么是不是应该通过交换机来实现?  例如我的设备发送带有IEEE802.1Q标记的帧给交换机,然后交换机会选择匹配的VLAN端口,将数据 ...…

查看全部问答>

VHDL.Verilog实现有符号数乘法

在数字信号处理(DSP)中,乘加是最基本的运算,以至于很多FPGA厂商以MAC的多少及运算速度做为器件的一个重要指标。下面就乘法实现进行讨论。在DSP中,大多是有符合数的操作,这里给出有符号数乘法的VHDL和Verilog程序。LIBRARY ieee;USE ieee.std_ ...…

查看全部问答>

用单片机如何做串口数据转发?

我有个设备是直接和PC机通过串口连接的,我现在想做一个东西,串在这个串口线上,把PC机发给设备的数据给处理一下!   具体问题是:这个设备在通过与PC机串口通信的时候,需要手工按开关和拨换档位,我现在想用一个单片机加一些电路把这个手 ...…

查看全部问答>

谁知道STM8S103F3与207系列的是否兼容?

                                 我用207系列的程序调试的好好的。(定时器4)。但移植到F3上就是不行。看手册ST的手册那个费劲呀,都没找到详细的 ...…

查看全部问答>

请教 如何实现50us精度的实时时钟

需要一个实时时钟电路,分辨率精度50uS,连续计时8小时以上。 本人想到的几个除可编程器件实现以外的思路: 1  给20K的晶振时钟,用32位计数器连续不断的计数,不晓得那位用过相应的计数器 2  能达到100us精度的实时时钟芯片,也可以 ...…

查看全部问答>

actel FPGA的第一个实验失败的,大家帮忙看看呢!谢谢了

不知道为何周立功做的FPGA选择actel 的加上比较难用的libero开发环境。用过Q2再用这个好不习惯那!我照着书抄的第一个FPGA的led程序:module LED(clk48M,rst,ledout);    input clk48M;    input rst;    output [1: ...…

查看全部问答>

献给初学者---stm32串口中断收发例程

本例程使用stm32的串口 采用中断接收和发送的方式 接收由串口调试助手发送的一帧数据 并且回显验证 通过本例程  初学者可以很方便的学会stm32系列单片机的串口中断收发数据,并且帮你理解串口的中断收发原理。 希望对初学者有所帮助,如果大家 ...…

查看全部问答>