SDRAM调试总结

SDRAM的调试总结

1 概述

实验平台: JZ2440

CPU: S3C2440

SDRAM型号: EM63A165TS-6G


2 SDRAM的一些基本概念

2.1 引脚分配


2.2 引脚描述

A0-A12 :地址线

DQ0-DQ15 :数据线

LDQM、UDQM :数据屏蔽控制

BA0-BA1 :L-BANK地址线

CLK :时钟

CKE :时钟使能

CS# :片选

WE# :写使能

CAS# :列地址选通脉冲

RAS# :行地址选通脉冲

VSS、VSSQ :地

VDD、VDDQ :电源


2.3 内部框图


2.4 基本概念

初始化完成之后,想要对一个L-BANK的阵列进行寻址,需要经过片选、选择L-BANK、激活对应的行,选择对应的列并发送读写命令,完成对应操作。

2.4.1 行(Row)有效

确定要操作的行,使之处于激活(Active)状态;行有效操作与片选、L-BANK地址同时进行。


2.4.2 列(Column)寻址

行有效后,经过一定的时间间隔后[Trcd(RAS to CAS Delay)],进行列寻址操作,确定要操作的存储单元;列寻址与读写命令同时进行。


2.4.3 数据输出(读)

从CAS与读取命令发出,到第一笔数据输出到数据总线上,有一段时间间隔,这个时间间隔成为[Tcl(CAS Latency,CAS潜伏期)];从数据总线上有数据输出之前的一个上升沿开始,数据已被触发,经过一定的驱动时间,最终被传向数据总线上,这段驱动时间,被称为[Tac(Access Time from CLK,时钟出发后的访问时间)],每个数据读取时,都有Tac,包括连续读取,只是在第一个数据传输的同时,就开始了第二个数据的Tac。


2.4.4 数据输入(写)

数据写入也是在Trcd之后进行,数据与CAS同时发送,即写入延时为0,但是为了保证数据的写入可靠,都会留出足够的写入、校正时间[Twr(Write Recovery Time)],这个操作也被称作写回(Write Back);注意,预充电与写操作不能同时进行,并且在写操作完成后,等待Twr的时间间隔,才能执行预充电操作。


2.4.5 突发(Burst)

突发是指同一行中,相邻的存储单元连续进行数据传输的技术,连续传输所涉及的存储单元(列)的量,就是突发长度(Burst Length, BL);只要起始列地址和突发长度,内存就会依次地自动对后面相应数量的存储单元进行读写操作,而不需要控制器连续地提供列地址。

Full Page突发传输:L-BANK里,对某一行中所有存储单元按顺序连续传输。

顺序传输:从指定起始单元开始,按顺序传输。

交错传输:按照指定规则,进行数据传输。


2.4.6 预充电(Precharge)

L-BANK关闭现有工作行,准备打开新行的操作,就是预充电操作。实际上,预充电就是对工作行中所有存储单元进行数据重写,并对行地址进行复位,以准备新行的工作。地址线A10控制着读写之后,是否进行自动预充电操作。

在发出预充电命令之后,要经过一定时间才能发送行有效命令打开新的工作行,这段时间为[Trp(Precharge command period),预充电有效周期]。


2.4.7 刷新(Refresh)

刷新的意义在于保存数据。在刷新过程中,所有L-BANK都停止工作,所有的工作命令只能等待而无法执行,刷新完成后,才会重新进入工作状态。

刷新分为两种:自动刷新(Auto Refresh, AR)和自刷新(Self Refresh, SR)。

自动刷新:在正常工作状态下,芯片周而复始地自动刷新,以保存临时存储地数据。

自刷新:在休眠状态下(在发出AR命令后,使CKE置于无效状态,重新使能CKE可退出),芯片内部自动刷新,以保证数据不丢失。


2.4.8 刷新与预充电地区别

预充电是对一个或所有L-BANK中的一个工作行进行重写操作,是不定期的;刷新是对所有行进行重写操作,以保留那些久久未被重写的存储单元的数据。


2.4.9 数据掩码

屏蔽不需要的数据。在读取数据时,DQM发出,两个时钟周期后生效;在数据写入时,DQM立即生效。


2.4.10 几种读取时可能出现的情形

a、页命中(PH, Page Hit)

要寻址的行与L-BANK是空闲的,直接发送行有效,再发送列寻址,即可完成读写操作。

b、页快速命中(PFH, Page Fast Hit)

要寻址的行正好是前一个操作的工作行,即寻址的行已处于选通有效状态,可以直接发送列寻址,即可完成读写操作。

c、页错失(PM, Page Miss)

要寻址的行所在的L-BANK中已经有一个激活的工作行(寻址冲突),这时必须先对激活的工作行进行预充电操作,关闭激活的行,再对新行发送行有效,页寻址,才能完成读写操作。

交错式内存控制:一个L-BANK进行工作时,对下一个要工作的L-BANK进行预充电操作。


3 EM63A165TS

3.1 时序

模式寄存器位映射关系

3.3 突发访问规则


3.4 AC特性

4 S3C2440内存控制器配置说明

4.1 原理图说明

这是一种两个16位位宽的SDRAM芯片拼接成一个32位位宽的模组接法。

a、A0连接CPU的哪根地址线,是由模组的数据位宽决定的。由于CPU是按字节寻址的,而SDRAM模组是按字寻址的,所以应该进行地址转换。

b、A0、BA0、BA1连接的地址线可以参考用户手册。


4.2 工作原理简述

S3C2440的内存空间划分为不同的块,当CPU向内存控制器发出地址,内存控制器根据地址范围,发出对应片选信号到片选引脚,实现对不同设备的控制。


4.3 寄存器设置(clocks = 10ns)

4.3.1 BWSCON

说明

[27]

0:把对应的引脚映射为写字节使能,该位的作用是,对写入数据,屏蔽不需要写入的字节,实现单个字节写操作。

1:把对应的引脚映射为字节使能,该位的作用是,对读入数据,屏蔽不需要读取的字节,实现单个字节读操作。

[26]

如果CPU速度远远大于SDRAM速度,当CPU向SDRAM发送读取命令时,SDRAM未能及时准备好数据,可以使能该位,设置等待,保证能读到数据。


4.3.2 BANKCON6


4.3.3 REFRESH


4.3.4 BANKSIZE


4.3.5 MRSRB6


5 参考文档

《S3C2440用户手册》

《EM63A165TS Datasheet》

《高手进阶——高级内存技术指南》

《嵌入式Linux开发完全手册》

原文地址:https://www.cnblogs.com/lilto/p/10804389.html

时间: 2024-10-19 13:18:32

SDRAM调试总结的相关文章

FPGA_VIP_V101 摄像头视频采集 调试总结之SDRAM引起的水平条纹噪声问题

此问题困扰我很近,终于在最近的项目调整中总结了规律并解决了. 因为之前对sdram并不熟悉,用得也不是太多,于是从淘宝购买了各自廉价的sdram,其中型号: htt56v6229cot-7 hy57v641620etp-h hy57b561620etp-h hy57v641620ftp-7 hy57v561620ct-6 进行评估,各自玩,在简单的测试例程中并未发现没什么区别(SDRAM串口调试.SDRAM-VGA显示.摄像头视频缓冲) 各种例程玩转,觉得非常high,偶尔有遇到不同例程对sdr

调试2440 RAM拷贝至SDRAM遇到的问题

汇编代码主要是初始化一些寄存器,关狗,初始化时钟,初始化存储管理器以便访问内存,然后将SoC上4k RAM数据拷贝至SDRAM,然后在SRAM里面运行,由于代码未正常跑起来,于是使用JLinkExe来调试.JLinkExe指定了一个命令文件: JLinkExe -commandfile ./cmd.jlink ,cmd.jlink文件内容如下: 1 r 2 loadbin /home/thomas/learn/armasm/addresses/main.bin 0x0 3 setbp 0x0 a

一路艰辛调试特权同学Verilog读写SDRAM实验,终于通了。

今年过完年回到学校,大概二月19日,开始调SDRAM这个实验,目的是想做最后的那个数码相框的项目.特权使用的SDRAM是三星的K4S641632(64M),而我板子上是海力士的H57V1262GTR(128M),由于不知道二者时序是否兼容,于是乖乖的按照特权的建议,仔仔细细的把<SDRAM-高手进阶,终极内存技术指南——完整进阶版.pdf>一文读了个遍,结果感觉时序是一样的,又从网上查资料,得到的结论也是二者兼容.于是不打算动其中大的时序过程.检查程序,修改程序,进行了许多尝试,下到我的板子上

Keil MDK使用J-LINK分别在Sram,Nor Flash以及Sdram中调试代码的原理和方法

一.概述 MDK开发ARM裸机程序时,在调试阶段通常是先让程序在SDRAM中执行,以加快调试速度,也避免频繁烧写Nor Flash,因此需要知道如何指定程序在哪个位置执行.本文以realarm 2410开发板为例,进行描述.该开发板使用S3C2410A做为CPU,有2MB的 Nor Flash,以及64MB的SDRAM,4KB的SRAM.程序可直接在Nor Flash中调试和运行,如果代码小于4KB,也可以直接在SRAM中运行,然而在SDRAM 中运行,就需要事先用脚本初始化SDRAM,才能把程

谈谈SDRAM的作用

SDRAM这个至今还在用的存储器,虽然被后来的DDR取代,掌握好它还是很重要的.之前在调试时,确实费了好大劲,它的复杂性毋庸置疑,一般人要想弄懂他,得花1个月左右吧,至少我这么认为.话说回来,SDRAM的作用是什么呢?答案肯定是存储,如果你没在项目中运用它的话,是很难体会到它的作用的,最近在弄SDRAM的VGA显示,其实调好后,也没那么神奇.先以高频率100M往SDRAM写数据,之后读出数据时,因为VGA时钟频率为25M,肯定不能直接给VGA,需要把SDRAM读出的数据缓存在DCFIFO中,通过

USB视频采集系统 视频测试软件将正式发布(方便调试测试各自摄像头,RAW,RGB,YUV)

先上图,看看这个软件,学习fpga将近一年,了解视频图像开发方向也半年有余,不断学习不断总结,开发软件工具是为了更方便的学习新通信 主要相关知识: FPGA+SDRAM+VGA(双端口fifo技术) 68013 从端口fifo(usb2.0高速传输,速度高达43Mbyte/s) C++(mFC vs2008开发) 软件介绍: 本软件可以采集68013传输的各种图像格式 1.各自分辨率自由配置,均支持(已测:640*480,800*600,1024*768,1280*1024,2592*1944)

简易SDRAM控制器的verilog代码实现

SDRAM是每隔15us进行刷新一次,但是如果当SDRAM需要进行刷新时,而SDRAM正在写数据,这两个操作之间怎么进行协调呢? 需要保证写的数据不能丢失,所以,如果刷新的时间到了,先让写操作把正在写的4个数据(突发长度为4)写完,然后再去进行刷新操作: 而如果在执行读操作也遇到需要刷新的情况,也可以先让数据读完,再去执行刷新操作. 思路:SDRAM控制器包括初始化.读操作.写操作及自动刷新这些操作,给每一个操作写上一个模块独立开来,也便于我们每个模块的调试,显然这种思路是正确的: 虽然都是独立

《FPGA全程进阶---实战演练》第二章之焊接板子及调试注意事项

1.若是读者第一次做板子,强烈建议画完PCB板后将PCB图打印出来,然后对照你买的芯片将芯片放置对 应的位置,然后查看所有的封装格式适不适合,否则等你做出板子来后再试,为时晚矣.笔者虽然知道要这么 做,但是笔者第一次发给工厂做回来的PCB发现有一个芯片封装画大了,而且那个芯片还是贴片封装的,这让 笔者心痛不已,300多大洋就这么要毁于一旦了. 2.在参考别人的电路时一定要注意,你想用的芯片型号的电路适不适合你参考的电路图,若是完全一致,那么可以直接照抄照搬,若是不一样,这时候要非常注意电路的设计

【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十八:SDRAM模块① — 单字读写

实验十八:SDRAM模块① — 单字读写 笔者与SDRAM有段不短的孽缘,它作为冤魂日夜不断纠缠笔者.笔者尝试过许多方法将其退散,不过屡试屡败的笔者,最终心情像橘子一样橙.<整合篇>之际,笔者曾经大战几回儿,不过内容都是点到即止.最近它破蛊而出,日夜不停:“好~痛苦!好~痛苦!”地呻吟着,吓得笔者不敢半夜如厕.疯狂之下,誓要歪它不可 ... 可恶的东西,笔者要它血债血还! 图18.1 数据读取(理想时序左,物理时序右). 首先,让我们来了解一下,什么才是数据读取的最佳状态?如图18.1所示,红