ARM DDR SDRAM 初始化

发布者:zhihua最新更新时间:2016-07-26 来源: eefocus关键字:ARM  DDR  SDRAM  初始化 手机看文章 扫描二维码
随时随地手机看文章
目录:  1.DDR SDRAM 简介   
     2.DDR 控制器初始化以及DDR SDRAM初始化流程
             3.ARM编程初始化DRAM Controller 和DDR SDRAM细节details
 备注:  由于DDR SDRAM时序比较复杂,具体时序细节在未来的另一篇博文用FPGA来设计DDR SDRAM控制器中记录。   用FPGA来设计DDR SDRAM控制器相对于直接使用ARM片上的DRAM Controller 要复杂的多。 
 
 
1.DDR SDRAM introduction 
DDR SDRAM本质上就是一个存储器件。它是易失性存储器件。掉电后数据就消失。    你可以把它想象成和简单的单端口RAM和双端口RAM功能一样,可以通过读,写命令,以及对应的地址来访问内部数据。但是它又不像普通的RAM。
(1)首先>>    DDR SDRAM在使用前要做一系列的初始化工作。初始化工作包括使能时钟,预充电,自刷新,等待200clks ,设置模式寄存器以及扩展模式寄存器等。初始化完成后,才能进入读写数据状态 。   而且在工作工程中要定期进行刷新,防止电荷丢失掉。
(2)其次>>  DDR SDRAM 芯片本身有很多参数需要来设置。 
2.1  比如,在写操作时,你先要设定行(row),然后过一段时间再设定列(column)。这段时间就叫RCD (Row Column Delay )【行地址到列地址的有效时间】
2.2 还有,在读操作时,读命令发出之后数据不会立即被读出,要经过一定的时钟周期。 而这段延时就叫CAS Latency(Column Address Strobe latency)
2.3 自动刷新时间的设置:  Ddr  sdram芯片一般来说是每64ms刷新一次,刷新是整个bank 都要刷新,即有多少行需要来刷新,如果行地址为A12-A0,即有2.*(13)=8192行  ,即刷新一行需要64ms/8192时间。   
还有一些参数,如有时间,今后更新博客中完善。  
(3)再者>>   DDR SDRAM的行地址和列地址共用同一地址总线,不过这个地址总线何时被用来做行地址或列地址,可以翻看DDR 数据手册,时序是关键。
(4)数据读写时,是在时钟上升沿和下降沿都会有数据传输。这就是DDR SDRAM速度快于SDRAM的原因,这也是名字的由来(Double Data rate SDRAM)。    
2.DDR 控制器初始化以及DDR SDRAM初始化流程
 见图:  
ARM DDR SDRAM 初始化 - Melchior - Melchiors Home
 3.ARM编程初始化DRAM Controller 和DDR SDRAM细节details
按着上图所示操作流程,依次写下即可,设置好相关寄存器的值,参考S3C6410手册以及你板子上所用DDR SDRAM芯片手册。sdram初始化子函数如下。

 

int sdram_init( void )
{
// tell dramc to configure
set_val( MEMCCMD, 0x4 );
 
// set refresh period
set_val( P1REFRESH, nstoclk(7800) );
 
// set timing para
set_val( P1CASLAT, ( 3 << 1 ) );  
set_val( P1T_DQSS, 0x1 ); // 0.75 - 1.25
set_val( P1T_MRD, 0x2 );
set_val( P1T_RAS, nstoclk(45) );
set_val( P1T_RC, nstoclk(68) );
 
u32 trcd = nstoclk( 23 );
set_val( P1T_RCD, trcd | (( trcd - 3 ) << 3 ) );
u32 trfc = nstoclk( 80 );
set_val( P1T_RFC, trfc | ( ( trfc-3 ) << 5 ) );   
u32 trp = nstoclk( 23 );
set_val( P1T_RP, trp | ( ( trp - 3 ) << 3 ) ); 
set_val( P1T_RRD, nstoclk(15) );
set_val( P1T_WR, nstoclk(15) );
set_val( P1T_WTR, 0x7 );
set_val( P1T_XP, 0x2 );
set_val( P1T_XSR, nstoclk(120) );
set_val( P1T_ESR, nstoclk(120) );
 
// set mem cfg 
set_nbit( P1MEMCFG, 0, 3, 0x2 );  /* 10 column address */
 
/* set_nbit: 把从第bit位开始的一共len位消零,然后把这几位设为val */
 
set_nbit( P1MEMCFG, 3, 3, 0x2 );  /* 13 row address */
set_zero( P1MEMCFG, 6 );  /* A10/AP */
set_nbit( P1MEMCFG, 15, 3, 0x2 ); /* Burst 4 */
 
set_nbit( P1MEMCFG2, 0, 4, 0x5 );
set_2bit( P1MEMCFG2, 6, 0x1 ); /* 32 bit */
set_nbit( P1MEMCFG2, 8, 3, 0x3 ); /* Mobile DDR SDRAM */
set_2bit( P1MEMCFG2, 11, 0x1 );
 
set_one( P1_chip_0_cfg, 16 ); /* Bank-Row-Column organization */
 
// memory init
set_val( P1DIRECTCMD, 0xc0000 ); // NOP
set_val( P1DIRECTCMD, 0x000 ); // precharge
set_val( P1DIRECTCMD, 0x40000 );// auto refresh
set_val( P1DIRECTCMD, 0x40000 );// auto refresh
set_val( P1DIRECTCMD, 0xa0000 ); // EMRS
set_val( P1DIRECTCMD, 0x80032 ); // MRS
 
set_val( MEM_SYS_CFG, 0x0 );
 
// set dramc to "go" status
set_val( P1MEMCCMD, 0x000 );
 
// wait ready
while( !(( read_val( P1MEMSTAT ) & 0x3 ) == 0x1));
}

 

时间仓促,该文章还需完善。  

关键字:ARM  DDR  SDRAM  初始化 引用地址:ARM DDR SDRAM 初始化

上一篇:ARM 开发板 与 PC机ubuntu系统 nfs 挂载
下一篇:一个转义字符"\r"对程序输出的影响

推荐阅读最新更新时间:2024-03-16 15:01

ARM处理器及ARM处理器工作模式
简介:ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: 第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令; 第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。 ARM处理器状态 ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: 第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令; 第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。 在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。 ARM处理
[单片机]
ARM状态寄存器访问指令
  ARM中有两条指令用于在状态寄存器和通用寄存器之间传送数据。   状态寄存器中有些位是当前没有使用的,但在ARM将来版本中有可能使用这些位,因此用户程序不要使用这些位。   程序不能通过直接修改CPSR中T的控制位直接将程序状态切换到Thumb状态,必须通过BX等指令完成程序状态的切换。   通常修改状态寄存器是通过“读取-修改-写回”的操作序列来实现。   状态寄存器访问指令包括以下两条。   (1)MRS 状态寄存器到通用寄存器的传送指令   MRS(条件) Rd ' CPSR   MRS指令用于将状态寄存器的内容传送到通用寄存器中。   MRS指令主要用于以下3种场合。   ·通常通过“读取-修改-写回“
[单片机]
出售25%ARM股份 软银这是要做什么?
  北京时间3月8日消息,据外媒报道,知情人士称,在主要投资者想要将芯片厂商 ARM 控股纳入他们的投资组合后,软银 集团计划将 ARM 的25%股份出售给一家科技基金。该基金由软银 与沙特联合创建。下面就随安防电子小编一起来了解一下相关内容吧。   知情人士称, 软银 将以80亿美元出售这部分 ARM 股份。这笔交易并不属于软银此前承诺向愿景基金(Vision Fund)投资250亿美元的一部分。   软银创始人孙正义(Masayoshi Son)正与沙特、阿布扎比穆巴达拉发展公司以及其他投资者建立一只规模为1000亿美元的投资基金,该基金将会使得孙正义成为全球最大的科技投资者之一。软银在去年9月斥资320亿美元收购
[安防电子]
SoC FPGA采用64位ARM核背后的“硝烟”
FPGA两大业者Xilinx与Altera战火已经燃烧到了最先进制程领域。Altera在今年6月宣布将采用这一工艺生产下一代SoC FPGA产品Stratix 10以来,这款最新产品的技术细节一直备受关注。而今悬念终于揭晓,Altera透露了Stratix 10核心架构组成,其中CPU将采用四核64位ARM Cortex-A53。这不仅意味着SoC FPGA的胜利,背后的玄机还在于:ARM的竞争对手英特尔有能力针对ARM架构的处理器产品进行量产,而且还是采用自家制程。依照过去的相关纪录,英特尔从未有过针对ARM架构的产品进行量产,此一举动势必牵动全球半导体产业的各大龙头的策略布局。 英特尔是求全还是自救? 设计厂
[嵌入式]
SoC FPGA采用64位<font color='red'>ARM</font>核背后的“硝烟”
ARM体系结构学习3
ARM程序状态寄存器: ARM体系结构包含1个当前程序状态寄存器(CPSR)和5个各份的程序状态寄存器(SPSRs)。使用MSR和MRS指令来设置和读取这些寄存器。   当前程序状态寄存器(CPSR),持有关于当前 处理器 状态的信息。其他5个各份的程序状态寄存器(SPSR),每个特权模式都有一个,持有完成在这个模式下的例外处理时处理器必须返回的关于状态的信息。   SPSR用来进行异常处理,其功能包括:   (1)保存ALU中的当前操作信息。   (2)控制允许和禁止中断。   (3)设置处理器的运行模式。   程序状态寄存器的每一位的安排如图所示。 图程序状态寄存器格式   1.条件码标志(Condition
[单片机]
<font color='red'>ARM</font>体系结构学习3
ARM七种异常源和异常处理流程(四大步三小步)
ARM异常处理(处理器对特定的异常事件进行的处理)的进入过程(硬件自动完成): 四大步(两备份两修改)三小步: (1)拷贝 CPSR (当前程序状态寄存器current program status register)到 SPSR_ mode (保存当前程序状态寄存器Saved Program Status Register) (2)设置适当的 CPSR 位: 1--改变处理器状态进入 ARM 态(thumb状态下异常处理无法返回) 2--改变处理器模式进入相应的异常模式M 3--设置中断禁止位禁止相应中断 (如果需要) (3)保存返回地址
[单片机]
<font color='red'>ARM</font>七种异常源和异常处理流程(四大步三小步)
做巨头簇拥的精灵 ARM演绎知识产权传奇
如同魔戒中的尼古拉斯,ARM箭不虚发,箭杆由技术打造,箭头却由知识产权锻造。   ARM(伦敦证交所:ARM;纳斯达克:ARMHY),一个精灵般的小巨人,已成为英国今日乃至未来都可以为之自豪的企业。正是这个全球员工人数不多的企业,却让德州仪器(TI)、英特尔、诺基亚和摩托罗拉等巨子们为之疯狂。   ARM在科技企业中当属于另类,它从1991年诞生之日起,十几年来没有生产过一件产品,乃至于ARM中国公司在上海注册时,只能注册为"咨询公司"这么个怪诞的名字。虽没有产品,但ARM却牢牢掌控着半导体和无线通信等产业的上游,或者说上上游。因为ARM掌控着新经济时代最热门、最令人觊觎的商品知识产权(IP)。   在半导体行业
[焦点新闻]
三星宣布与 Arm 合作,以 GAA 代工技术优化下一代 Cortex-X CPU 内核
2 月 20 日消息,三星电子旗下芯片代工部门宣布与 Arm 合作,共同开发、优化下一代 Cortex-X 核心。据介绍,此次合作涉及通过使用 Arm 最新 Cortex-X 设计和三星 GAA 工艺,旨在提升 CPU 性能和能效表现。 也就是说,Arm 下一代 Cortex-X 系列 CPU 架构将针对三星电子的 Gate-All-Around(GAA)芯片制造技术进行优化,这意味着基于下一代 Cortex-X 系列架构的 CPU 在使用三星 2nm 和 3nm GAA 工艺制造时可获得进一步优化,从而提供更高的性能和更低的功耗。 IT之家查询相关资料获悉,GAA 是目前业界公认的下一代技术,相比 FinFET 进一步改进了半导
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved