S3C2440内存控制器与SDRAM

发布者:ByteWanderer最新更新时间:2021-12-02 来源: eefocus关键字:S3C2440  内存控制器  SDRAM 手机看文章 扫描二维码
随时随地手机看文章

1、S3C2440中内存控制器的简单介绍

内存控制器的作用是什么,它有哪些特点?

内存控制器是怎么被CPU使用的?

CPU的地址总线是怎么与存储类芯片进行连接的?


1、它的作用与特点如图1,以下是简单的翻译:

S3C2440A内存控制器提供外部内存访问所需的内存控制信号。

S3C2440A具有以下特点:

-小/大端(可由软件选择)。

-地址空间:每个BANK都有128Mb(总共1GB/8个BANK)。

-除BANK0的可编程总线位宽位(16/32位)外,其他的所有BANK的可编程总线位宽位有三种(8/16/32位)。


-总共8个BANK:

BANK0 ~ BANK5 用于ROM、SRAM等。

BANK6 ~ BANK7 可用于ROM、SRAM、SDRAM

-BANK0 ~ BANK6 共7个BANK的开始地址是固定的。

-BANK7 的开始地址和大小是可编程的。

-每个BANK的存取周期都是可编程的。

-可通过外部的 wait 信号进行等待,以延长总线访问周期。

-在SDRAM下支持自刷新和电源关闭模式。

图 1

2、在我们的JZ2440开发板上有着许多片内外设(如:GPIO、UART、存储类设备等),那么CPU如何操作这些外设的呢?当CPU去操作非存储类设备时,它是直接去操作CPU内部的寄存器;而它在操作存储类设备(如:NOR FLASH,DM9000、SDRAM等)时,它首先发出32bit的ADDR给内存控制器,然后内存控制器根据ADDR的范围发出片选信号,随后取出ADDR中的ADDR0~ADDR26发给选中的外设并与之进行数据交换,最后把处理后的数据返回给CPU;由第1点我们知道,内存控制器总共有8个BANK,每个BANK为128Mb(2^27),BANK的分布如图2

图 2

3、在这里我们主要介绍CPU与ROM连接的样例,CPU其他的存储类芯片的连接类似(参考S3C2440芯片手册)。通过图3、4、5我们可以看出CPU是用A0和8位ROM的A0相连,A1和16位ROM的A0相连,A2和32位ROM的A0相连。8bit的ROM中一个字节占用一个存储单元,内存控制器可以直接访问到具体的1Byte并返回给CPU;16bit的ROM中两个字节占用一个存储单元,内存控制器一次最少取2Byte,然后再根据A0的值来确定具体的字节并返回给CPU;32bit的ROM中四个字节占用一个存储单元,内存控制器一次最少取4Byte,然后再根据A1和A0的值来确定具体的字节并返回给CPU;

图 3

图 4

图 5

2、SDRAM的简单配置

JZ2440上的SDRAM的内存是多大,它的q起始地址是多少?

SDRAM的简单配置。

1、在JZ2440上接的有2块EM63A165TS-6G(16M x 16 bit),故总内存是64MB的。由图6我们可以看到与SDRAM的A0连接的是CPU地址总线的第2位(这也符号前文第3点相符),可是为什么只有17根地址线(加上第0根和第1根)与SDRAM连接呢,2^17也才128kb啊,这其实是因为SDRAM有点特殊,它的地址分为行/列地址(也即图6中的nSRAS和nSCAS),访问一次SDRAM需要发送2次地址信号。SDRAM中一般由4个L-BANK,它是通过ADDR24和ADDR25来选择其中一个L-BANK的,而L-BANK的行列地址是通过ADDR2-ADDR2来进行选择的。当nSRA有效时,通过ADDR2-ADDR14发送行地址;当nSCAS有效时,通过ADDR2~ADDR10发出列地址。在图6中我们还得知它的片选引脚位nGCS6,结合图2得它的起始地址为0x30000000。(参考韦东山老师写的《嵌入式Linux开发完全应用手册》)

图 6

2、通过查看S3C2440芯片手册我们看到再内存控制器中对SDRAN进行配置时我们需要设置的寄存器有:BWSCON、BANKCON67、REFRESH、BANKSIZE、MRSRB67。

通过图7我们知道在BWSCON寄存器中我们只需要设置BWSCON[27:24],因为我们接了2块16bit的SDRAM且一般不需要wait信号,同时ST6设为0,因为一般将BANK7和BAANK6设为一样的,所以BWSCON = 0x22000000;

根据图8我们设置BANKCON6 = 0x18001;BANKCON7 = 0x18001,其中我们用的SDRAM列地址数(SCAN)为9bit,根据图9我们取Trcd=20ns,因为我们的tHCLK为10ns,所以这里Trcd=0b00;

图 7

图 8

图 9

图 10

在图11的REFRESH寄存器中的Trp由图9取20ns、Trc取60ns,故REFRESH[21:20]=0b00,REFRESH[19:18]=0b01,结合图10和图11得REFRESH[10:0]=1269;故REFRESH = 0x8404F5;根据图12有BANKSIZE = 0x0B1;

图 11

图 12

通过图10和图13我们设置 `MRSRB6 = 0x20; MRSRB7 = 0x20;

图 13

下面是将上问设置的寄存器整理在一起的代码。


void sdram_init(void)

{

BWSCON = 0x22000000;


BANKCON6 = 0x18001;

BANKCON7 = 0x18001;


REFRESH = 0x8404F5;


BANKSIZE = 0x0B1;


MRSRB6 = 0x20;

MRSRB7 = 0x20;

}


以上只是很简单的介绍了下SDRAM以及如何配置

关键字:S3C2440  内存控制器  SDRAM 引用地址:S3C2440内存控制器与SDRAM

上一篇:S3C2440存储器SDRAM控制笔记
下一篇:ARM9_S3C2440学习(七)SDRAM学习总结

推荐帖子

TLP3547评测1--测试
今天正好在拿个板在测试各种小步进电机,正好顺便来测试下这个光电继电器。用开关电源直接供电,开关电源有两组输出,一组直接给继电器输入端(线圈端)供电,另外一组的地直接接开发板,电源端12V经过继电器开关切换后接开发板,接线图如下,手画的,大家看懂就行,好不好看都将就吧。实物连线比较乱,临时搭下比较方便点线圈端供电从低电压开始往上加,电压低的时候开关断开不导通。加到1.8V左右的时候处在临界状态了,这时候应该是导通一点但不充分,主板有电了,但是在复位状态,没有正常工作。线圈电压
wudianjun2001 东芝光电继电器TLP3547评测
求助用Launchpad上的ICDI仿真青风HANKER-LM4F232开发板
接线是按照上图和对应接的,EXTDBG也按照官方的debug-out说明接地了http://processors.wiki.ti.com/index.php/Stellaris_LM4F120_LaunchPad_Debug_How_To但是用ccs的时候就是“CORTEX_M4_0:Errorconnectingtothetarget”求解啊,都是同一款芯片却不能仿真啊求助用Launchpad上的ICDI仿真青风HANKER-LM4F232开发板楼主是那个
nwcheroes 微控制器 MCU
sql server ce 创建数据库的问题
privatestringstrConn=DataSource=\\\\test.sdf;privatevoidbutton1_Click(objectsender,EventArgse){SqlCeEnginedbEngine=newSqlCeEngine();dbEngine.LocalConnectionString=strConn;try{dbE
zzwwjj 嵌入式系统
STM32与DSP_TMS320C2000系列
感觉STM32与TI的TMS320C2000系列芯片都能开发逆变器,都能SPWM或者SVPWM算法运行,为什么大多数都选择使用TI的芯片呢?为什么不用STM32呢?两者在这方面的应用有什么不同之片吗STM32与DSP_TMS320C2000系列感觉STM32与TI的TMS320C2000系列芯片都能开发逆变器,都能SPWM或者SVPWM算法运行,为什么大多数都选择使用TI的芯片呢?为什么不用STM32呢?两者在这方面的应用有什么不同之片吗
qepdcri 开关电源学习小组
又给自己上了一课,还得多练
调试了一天,for循环就是不输出结果,后来发现len值已经归零,还得多练习。又给自己上了一课,还得多练积跬步行千里加油,共勉~
jiaol2021 编程基础
【HC32F460开发板测评】03.基于UART功能实现SHELL的移植与控制
本篇主要实现的是掌握USART通讯,能够实现数据的收发操作,串口的接收使用中断机制;基于USART功能添加SHELL程序,通过操作LED灯来实现一个简单的SHELL控制调用。1.USART通讯开发板上提供了USB转UART部分的硬件电路,我们只需要一根MicroUSB线将开发板与电脑进行连接,WIN10系统电脑会自动识别并安装USB转串口有驱动程序,再结合MCU的USART3接口,可以实现MCU与电脑端的串口数据通讯;USART初始化配置程序:将USART配
xld0932 国产芯片交流
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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