ARM9_S3C2440学习(七)SDRAM学习总结

发布者:Whisper123最新更新时间:2021-10-18 来源: eefocus关键字:ARM9  S3C2440  SDRAM 手机看文章 扫描二维码
随时随地手机看文章

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的设置,地址线映射关系复杂,因此推算会比较麻烦,一般如果没有什么映射的话,还是很容易操作的。

关键字:ARM9  S3C2440  SDRAM 引用地址:ARM9_S3C2440学习(七)SDRAM学习总结

上一篇:S3C2440内存控制器与SDRAM
下一篇:ARM9_S3C2440学习(一)ARM体系的7种工作模式

推荐阅读最新更新时间:2024-11-17 05:20

存储器控制器与SDRAM(S3C2440)
S3C2440属于统一编址,即存储器和外设统一编址。 CPU可以通过寻址的方式来访问诸如a.GPIO、b.UART、IIC、c.NOR、NAND、网卡等不同的设备。 问:那么CPU是如何访问各个不同的寄存器的呢? 答:CPU只管发出一个地址给内存控制器,内存控制器根据该地址选择不同的模块,然后从模块中得到数据或者发送数据到模块中。 S3C2440存储器控制器概述 –大/小端(通过软件选择) –地址空间:每个 Bank 有 128M 字节(总共 1G/8 个 Bank) –大/小端(通过软件选择) –除了 BANK0(16/32 位)之外,其它全部 BANK 都可编程访问宽度(8/16/32 位) –总共 8 个存储器
[单片机]
存储器控制器与<font color='red'>SDRAM</font>(<font color='red'>S3C2440</font>)
s3c2440芯片串口操作
S3C2440A通用异步接收器和发射机(UART)提供了三个独立的异步串行输入/输出(SIO)端口,每个端口都可以在中断或基于dma的模式下运行。换句话说,UART可以生成一个中断或DMA请求来在CPU和UART之间传输数据。UART可以使用系统时钟,支持波特率高达921.6 Kbps。如果外部设备提供UEXTCLK,那么UART可以以更高的速度运行。每个UART通道包含两个64字节的FIFO,用于接收器和发送器。 S3C2440A UART包括可编程的波特率、红外(IR)传输/接收、一个或两个停止位、5位、6位、7位或8位数据宽度和奇偶校验。 每个UART包含一个波特率生成器、发射机、接收机和一个控制单元,如图1所示。波
[单片机]
<font color='red'>s3c2440</font>芯片串口操作
ARM9的快速对星装置原理及设计实现
1 系统概述 该装置通过GPS采集地理信息、电子罗盘采集姿态信息,根据GPS采集的地理信息,结合通信卫星位置,计算出对星所需要的标准方位、俯仰、极化参数,同时计算出当地、当年磁偏角数据;通过采集电子罗盘数据,得到初步方位、俯仰、极化数据,其中俯仰和极化均为天线实际指向值,但是方位值是以磁北为标准测量值;通过GPS得到的磁偏角数据,对从电子罗盘得到的以磁北为标准的方位值进行修正,得到比较准确的、以真北为标准的真实方位数据。其系统结构如图1所示,其中基于EVC4平台的多线程应用程序流程结构如图2所示。 2 硬件设计 本装置在设计上,选择S3C2440作为主控制器构成硬件平台,利用其丰富的外部接口和高速处理能力,达到实时采集数
[单片机]
<font color='red'>ARM9</font>的快速对星装置原理及设计实现
S3c2440如何利用JLINK烧写U-boot到NAND Flash中
很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor Flash中很简单,大部分NOR Flash都已经被JLink的软件SEGGER所支持,而新手在学习的时候经常会实验各种各样的命令,最悲剧的莫过于将NAND Flash中原有的bootloader给删除了,这时候开发板上电后由于没有bootloader,硬件没有被初始化,在NAND Flash中的操作系统也就无法被加载,开发板成“砖”了,这时候笔记本又无法利用JTag烧写程序进Nand Flash。起始这些可以利用JLink通过两种
[单片机]
一种基于WinCE6.0的数字调频收音机的设计
本设计利用数字收音机芯片Si4730,为基于WincE6.0的智能系统集成FM功能提供了一种很好的解决方案,该方案实现了全频手动与自动搜台等功能。 1 基于WinCE6.0的系统设计流程 如图1所示,基于WinCE 6.0的系统设计一般分为3个过程:针对不同的硬件平台设计BSP包,BSP包括Boot-loader、OAL和驱动程序;针对系统的需求,利用Platform Builder for CE 6.0选择合适的组件,构建操作系统并导出SDK;在SDK的支撑下开发应用程序。 WinCE 6.0与其早期版本相比,开发工具有了较大的变化。Platform Builder已经不是一个单独发行的工具,Platform B
[单片机]
一种基于WinCE6.0的数字调频收音机的设计
S3C2440 TFTLCD驱动详解
S3C2440自带有LCD控制器,该控制器主要有以下接口 仅仅说TFT显示器,TFT显示器的时序如下 TFT显示器的驱动是以行列的形式逐点扫描过来的,驱动时钟有三种,一种是行时钟,一种是列时钟,还有一个点时钟, VSYNC低电平期间需要扫描完一列数据, HSYNC低电平期间要写完一个点的数据,vclk负责一个点的每一位数据写入,实际上就是说,如果有a列,b行,一个点需c个VCLK时钟,那么扫描完成需要的中vclk为a*b*c(近似,中间还有一些延时时间) 可以将这个过程看作是1602的刷新过程, VSYNC为低选择一列, HSYNC为低选择一行,然后写入显示数据还需要一个数据时钟,写完之后指针自动增长,中间
[单片机]
<font color='red'>S3C2440</font> TFTLCD驱动详解
利用FPGA解决TMS320C54x与SDRAM的接口问题
在DSP应用系统中,需要大量外扩存储器的情况经常遇到。例如,在数码相机和摄像机中,为了将现场拍摄的诸多图片或图像暂存下来,需要将DSP处理后的数据转移到外存中以备后用。从目前的存储器市场看,SDRAM由于其性能价格比的优势,而被DSP开发者所青睐。DSP与SDRAM直接接口是不可能的。FPGA(现场可编程门阵列)由于其具有使用灵活、执行速度快、开发工具丰富的特点而越来越多地出现在现场电路设计中。本文用FPGA作为接口芯片,提供控制信号和定时信号,来实现DSP到SDRAM的数据存取。 1 SDRAM介绍 本文采用的SDRAM为TMS626812A,图1为其功能框图。它内部分为两条,每条1M字节,数据宽度为8位,故存储总容量为2M
[应用]
基于ARM9的电力负控终端系统的设计
随着客户对电能质量要求的逐步提高,传统的电力网络难以满足发展要求。为此,提出发展“全覆盖、全采集、全预付费”智能电网的设想,以实现传统电网的升级。电力用户用电信息采集系统——智能电网管理终端,是一种集计算机、通信、用电及计量技术于一体的智能抄表设备,它具有抄收速度快、计算精度高、抄表实时性好、集成度高、可靠性好、结构简洁、安装使用方便等突出的优点,可直接与营业计算机联网,对电力用户进行数据采集计算及控制管理。电能计量自动抄表系统实现了从电能数据采集、传输到处理的自动化,采用自动抄表可以缓解抄表人员的劳动强度,降低人为因素造成的抄表误差,并能迅速统计低压时线损,降低用电成本,同时对加强用电管理,防止国家电力资源流失,对推进电能管理
[单片机]
基于<font color='red'>ARM9</font>的电力负控终端系统的设计

推荐帖子

在EVC中如何显示指定文件路径的BMP文件和JPG文件
我要用EVC4.0和POCKET2003开发一个小的应用程序,需要显示指定文件路径的BMP文件和JPG文件,ME刚用EVC不久,请各位高手多多指教!!在EVC中如何显示指定文件路径的BMP文件和JPG文件LoadImage能说的具体点吗显示BMP和VC下差不多JPG调用其他的库wince5.0里有个imaging接口,可以显示jpg,png,gif等等我也有相同的问题,提示找不到文件wcscat(szBitmap_name,TEXT(test.bmp));hB
naphu 嵌入式系统
关于过程性连续赋值语句
各位大侠,我想问下,过程性连续赋值语句的最大特点是什么啊?我还想问下,过程性连续赋值语句对于reg变量是不是不支持啊?我最近用quartusII仿真程序,在全编译的时候出现proceduralcontinuousassignmenttoregisterisnotsupported关于过程性连续赋值语句过程性连续赋值语句对于reg变量支持,你的程序有问题,贴出代码程序如下:moduled_flip_flop(d,clear,clock,q);inputd,
nwf1987 嵌入式系统
Qii 12.0 安装好之后,不能运行
刚从altera官网下了QII12.0,安装之后,运行程序,说无法定位程序输入点TCL_loadobjcmd于动态链接库tcl85.dll上,怎么办啊,大侠有没有办法解决啊,小弟万分感谢!Qii12.0安装好之后,不能运行咨询ALTERA!
gsylogo FPGA/CPLD
iccavr编译的时候出现的问题
在iccavr编译环境下编译的时候,当定义了一个变量的时候,就会出现以下的情况。iccavr-oUart_Boot-LC:\\icc\\lib\\-g-ucrtatmega.o-bfunc_lit:0x8c.0x20000-dram_end:0x10ff-bdata:0x100.0x10ff-dhwstk_size:16-beeprom:1.4096-fihx_coff-S2@Uart_Boot.lk-lstudio-lcatmega!Emain.o(19
amdsempron 嵌入式系统
求一个测试方案
各位大侠:请教一下,我需要开发一套系统进行TFT-LCD的CELL测试,显示画面很简单,就黑、白、灰、红、绿、蓝,但是需要带有VCR读取功能,并且要进行CIM通讯,方便不良数据上传。具体功能如下:1)PanelID、lotID通过VCR读取;2)Panel的不良数据需要通过CIM上传到服务器。请问要实现这样的目的,选择什么样的主芯片比较好?什么样的方案比较好?求一个测试方案还是800元一个月,找个人,来做检验吧,便宜,好用你都说的什么哦?咱就不明白呢?
ylwhut111 嵌入式系统
WinCE tiny kernel 窗口问题
请教,裁剪了一个WinCE的tinykernel,想自己添加需要的组件,想问问,需要哪个组件能产生桌面之类的窗口图形界面?我怎么整都只模拟出来个黑屏……!WinCEtinykernel窗口问题模拟是黑屏,有两个可能:1)是组件不对2)是组件对,但其它有问题不知道LZ增加了哪些组件?tinykernel是没有显示,也不支持shell的,你要窗口系统就不要选tinykernel引用2楼navi_dx的回复:……也不支持shell的,你要窗口系统就不要选ti
zjxgl WindowsCE
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved