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控制笔记
下一篇: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 国产芯片交流
设计资源 培训 开发板 精华推荐
- 键线分离模块
- 6E2 猫眼管 电平指示 拾音灯 直流供电版
- DECA,基于 10M50DAF484C6GES MAX 10 FPGA 的开发套件
- ADZS-21375-EZLITE、ADSP-21375 EZ-KIT Lite 评估系统基于 SHARC 数字信号处理器 (DSP)
- 使用 Analog Devices 的 LTC1623 的参考设计
- LTC2945CMS-1 宽范围双电源监视器的典型应用
- C5275115_AS5600非接触12位磁角度传感器验证板
- Dogchaser 超声波驱狗器
- MC34PF3000A4EP PMIC 解决方案电源管理的典型应用
- 使用 NXP Semiconductors 的 MPC5633MMLQ 的参考设计