S3C2440 SDRAM寄存器初始化设置

     开板子是s3c2440,使用两片容量为32MB、位宽16bit的EM63A165TS-6G芯片拼成容量为64M、32bit的SDRAM存储器。根据2410datasheet,要使用SDRAM需配置13个寄存器,以下逐个来看:

1、 BWSCON:Bus width & wait status control register总线位宽和等待状态控制寄存器。

此寄存器用于配置BANK0 – BANK7的位宽和状态控制,每个BANK用4位来配置,分别是:

● ST(启动/禁止SDRAM的数据掩码引脚。对于SDRAM,此位置0;对于SRAM,此位置1)

● WS(是否使用存储器的WAIT信号,通常置0为不使用)

● DW(两位,设置位宽。此板子的SDRAM是32位,故将DW6设为10)

特殊的是bit[2:1],即DW0,设置BANK0的位宽,又板上的跳线决定,只读的。我这板子BWSCON可设置为0x22111110。其实只需将BANK6对应的4位设为0010即可。

2、 BANKCON0 – BANKCON7

用来分别配置8个BANK的时序等参数。SDRAM是映射到BANK6和BANK7上的(内存只能映射到这两个BANK,具体映射多大的空间,可用BANKSIZE寄存器设置),所以只需参照SDRAM芯片的datasheet配置好BANK6和BANK7,BANKCON0 – BANKCON5使用默认值0x00000700即可。

对于BANKCON6和BANKCON7中的各个位的描述:

(1)MT(bit[16:15]):设置本BANK映射的物理内存是SRAM还是SDRAM,后面的低位就根据此MT的选择而分开设置。本板子应置0b11,所以只需要再设置下面两个参数

(2)Trcd(bit[3:2]):RAS to CAS delay(00=2 clocks,01=3 clocks,10=4 clocks),推2410手册上的荐值是0b01。我们PC的BIOS里也可以调节的,应该玩过吧。

(3)SCAN(bit[1:0]):Column address number(00 = 8-bit,01 = 9-bit,10= 10-bit),SDRAM列地址位数。查阅HY57V561620CT-H芯片手册得知此值是9,所以SCAN=0b01。

综合以上各值,BANKCON6 – 7设为0x00018005。

3、 REFRESH:刷新控制寄存器。

此寄存器的bit[23:11]可参考默认值,或自己根据经验修改,这里用0x008e0000,关键是最后的Refresh Counter(简称R_CNT,bit[10:0])的设置,2410手册上给出了公式计算方法。SDRAM手册上“8192 refresh cycles / 64ms”的描述,得到刷新周期为64ms/8192=7.8125us,结合公式,R_CNT=2^11 + 1 – 12 * 7.8125 = 1955。所以可得REFRESH=0x008e0000+1995=0x008e07a3。

4、 BANKSIZE:设置SDRAM的一些参数。其中BK76MAP(bit[2:0])配置BANK6/7映射的大小,可设置为010 = 128MB/128MB或001 = 64MB/64MB,只要比实际RAM大都行,因为bootloader和linux内核都可以检测可用空间的。BANKSIZE=0x000000b2。

5、 MRSRB6、MRSRB7:Mode register set register bank6/7

可以修改的只有CL[6:4](CAS latency,000 = 1 clock, 010 = 2 clocks, 011=3 clocks),其他的全部是固定的(fixed),故值为0x00000030。这个CAS在BIOS中应该也设置过吧,对PC的速度提升很明显哦J

至此,13个寄存器全部配置好了,下面就可以把代码复制到SDRAM中执行了,同样的程序速度要比片内SRAM运行的慢不少。

时间: 2024-09-23 07:12:04

S3C2440 SDRAM寄存器初始化设置的相关文章

bootloader功能介绍/时钟初始化设置/串口工作原理/内存工作原理/NandFlash工作原理

bootloader功能介绍 初始化开发板上主要硬件(时钟,内存,硬盘), 把操作系统从硬盘拷贝到内存,然后让cpu跳转到内存中执行操作系统. boot阶段 1.关闭影响CPU正常执行的外设 -关闭看门狗(watch dog)   WTCON 0xE2700000 -关闭中断 CPSR I和F位设置为1,关闭,不响应任何中断. 2.初始化时钟 -倍频到1Ghz,为外设分频 *串口驱动 3.初始化内存控制器,DDRAM -验证内存,往里面写一个值,然后再读出来 4.初始化硬盘,nand Flash

如何在win8系统中将ClearType初始化设置?

  ClearType其实就是一款文本协调器,在咱们的win8系统中使用的还是比较频繁的,但是在具体的使用过程中,似乎不少用户还是发现了问题,这不,今天就有一位使用win8系统的用户表示,自己在win8电脑中设置过这个ClearType之后,神奇的发现效果很一般,于是就想将ClearType初始化设置,那么如何在win8系统中将ClearType初始化设置?下面,小编就来详细的介绍一下吧! 1.首选,咱们返回到win8系统的传统桌面位置,然后同时按下win8电脑键盘上的win+R快捷键打开电脑的

阿里云服务器CentOS服务器初始化设置步骤_Linux

CentOS服务器初始化设置其实不分阿里云或其它服务器了,操作配置过程与步骤也差不多,下面和小编一起来看看.一.挂载硬盘 1.磁盘分区 fdisk -l #查看设备,一般可以看到设备名为/dev/xvdb fdisk /dev/xvdb #对磁盘进行分区 输入n #创建新分区 输入p #创建主分区 输入1 #创建第一个主分区 输入w #保存并执行以上命令,创建分区 待上面的命令执行完成之后,使用fdisk -l查看,会看到类似 /dev/xvdb1的分区 说明分区成功. 2.磁盘格式化 mkfs

Csharp: TreeView 初始化设置默认选择节点

/// <summary> /// 设置查找的节点为选定节点 /// 涂聚文 /// 2013-07-15 /// </summary> /// <param name="trvToSrch"></param> /// <param name="strToSrch"></param> /// <returns></returns> public TreeNode srch

windows 2008服务器安装与初始化设置图解

软件下载什么的我就不介绍了,大家自己准备吧. 安装开始:1.用安装光盘引导启动安装 由于主板厂商的不同,我们无法确定您的设定方式与我们完全相同,所以本部分请使用者自行参考主板说明书的"BIOS配置设定 开始,会让你选择安装语言,选择适合自己的时间和货币显示种类及键盘和输入方式. ,这里,,我就没抓到图,,嘿嘿,,不好意思.. 点击"现在安装".. 咦?你看到这里是不是说奇怪,,怎么没有要求你输入:产品密钥??嘿嘿..8告诉你! 因为本来就不用输入WINDOWS 2008的产品

《金蝶KIS----财务软件培训教程(第2版)》——第1天 金蝶KIS的安装与初始化设置 1.1 金蝶KIS标准版的安装与卸载

第1天 金蝶KIS的安装与初始化设置 金蝶KIS V8.1标准版是金蝶KIS系列中的一款产品,主要功能包括:账务处理.工资管理.固定资产.往来管理.报表与分析.出纳和系统维护功能,是最标准化的财务软件之一.金蝶KIS V8.1标准版有继承低版本KIS产品的特点,界面平面近人.图标和流程详细化,使用户朋友能轻松.快速的使用金蝶KIS产品. 1.1 金蝶KIS标准版的安装与卸载 1.1.1 安装环境要求 金蝶KIS标准版产品遵循的原则是"实用.够用.好用",对软.硬件要求不高,且不须购买配

常用快速还原BIOS初始化设置的方法

BIOS,Basic Input Output System,即基本输入输出系统,它保存着计算机最重要的基本输入输出的程序.系统设置信息.开机上电自检程序和系统启动自举程序.如果设置稍有不当,电脑就无法正常启动,有时候电脑出现故障时,也可以选择恢复出厂设置来解决问题,那么如何才能恢复BIOS的出厂设置呢?让高手来告诉你吧. 快速还原BIOS出厂设置的步骤: 方法一: 1.开机,待电脑第一屏幕信息出现时,根据屏幕下方的信息提示,如"Press DEl Enter Bios"."

CentOS 6.0图解安装教程:安装后的初始化设置

1.欢迎界面 Linux系统安装完毕以后,重新引导系统会进入欢迎画面,如下图所示. 2.许可证信息 单击"前进"按钮,进入如下图所示界面.显示许可证信息窗口,选择"是的,我同意许可证协议". &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp; 3.创建用户 单击"前进"按钮,进入如下图所示界面,在这里用户可以通过输入用户名.全称和口令创建一个普通 用户的账号

MySQL 5.6中的登陆初始化设置

最近研究一下MySQL 5.6 版本发现安装后,使用空密码无法登陆 安装的过程中有这样的一句话: A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER ! You will find that password in '/root/.mysql_secret'. You must change that password on your first connect, no other statement but 'SET PASSWORD'