历史上的今天
返回首页

历史上的今天

今天是:2024年12月07日(星期六)

2021年12月07日 | 第十三章、Tiny4412 U-BOOT移植十三 DDR3初始化源码分析

2021-12-07 来源:eefocus

第一步、设置时钟

按上一章中步骤来说明:

1.  DMC must assert and hold CKE to a logic lowlevel to provide stable power for memory device and then apply stable clock.

设置DMC,由于时钟已经在clock_init_mytiny4412.S中进行了设置,这里可以不用再做设置了。只要保持CKE为低电平。


第二步、设置Phycontrol_n寄存器

2.  Set the PhyControl0.ctrl_start_point andPhyControl0.ctrl_inc bit-fields to a correct value according to clockfrequency. Set the PhyControl0.ctrl_dll_on bit-field to "1" toactivate the PHY DLL.

依照时钟频率正确配置PhyControl0.ctrl_start_point和PhyControl0.ctrl_inc bit-fields的值。配置的PhyControl0.ctrl_dll_on值为'1'以打开PHY DLL。

3.  DQS cleaning: Set the PhyControl1.ctrl_shiftcand PhyControl1.ctrl_offsetc bit-fields to the appropriate value according toclock frequency, board delay, and memory tDQSCK parameter.

4.  Set the PhyControl0.ctrl_start bit-field to"1".

那开始配置PhyControl0和PhyControl1的相关位,查看手册的第18章,找到相关寄存器的配置。


表13-1、PhyControl0和PhyControl1相关寄存器地址

第2步中我们要配置我们需要正确配置PhyControl0寄存器的ctrl_start_point和ctrl_inc这两个位的值,OK,查看寄存器的描述。


表13-2、PhyControl0相关寄存器地址



ctrl_start_point和ctrl_inc这两位芯片手册上给的参考值为0x10,先配这两位,则为:

ctrl_start_point: 0x10---- 10000(二进制)

ctrl_inc: 0x10 ---- 10000(二进制)

那么ctrl_force怎么搞呢,我也没有闹明白,代码一开始设置是0x71,在上面的第11步中有这么句话:

11.  Wait for the PhyStatus0.ctrl_lockedbit-fields to change to "1". Verify whether PHY DLL is locked.PHY DLLcompensates the changes of delay amount that pressure, volume, and temperaturevariation causes during memory operation. Therefore, you should not power offPHY DLL for reliable operation. It can be in power-off mode except when it runsat low frequency.When you use the power-off mode, setthe PhyControl0.ctrl_force bit-fieldto the correct value according to the PhyStatus0.ctrl_lock_value[9:2] bit-fieldfor fix delay amount. Clear the PhyControl0.ctrl_dll_on bit-field to turn offPHY DLL.


上面说不能关闭了PHY DLL的电源,只有当他在低的时钟频率时才可以切换到Power-off 模式,当我们用power-off 模式,参考PhyStatus0.ctrl_lock_value[9:2]的延时参数来设置PhyControl0.ctrl_force bit-field,清除PhyControl0.ctrl_dll_on bit-field来关闭 PHY DLL。我查看了PhyStatus寄存器的说明,他是只读的,上电初始化是0x0,那FriendlyARM为什么设置这个值呢?我也不是很清楚了。DDR3的工作原理还是没有搞的很清楚呀,暂留一疑问吧。


ctrl_dfdps:这一位手册说明如果是LPDDR2这一位一定要置位,所以这一位设置为1.

其余的位全部配成0,最终为0111 0001 00001 0000 0001 0000 00001000,即0x7E101008。

 

接着往下看

3. DQS cleaning: Setthe PhyControl1.ctrl_shiftc and PhyControl1.ctrl_offsetc bit-fields to theappropriate value according to clock frequency, board delay, and memory tDQSCKparameter.

依照时钟频率和内存的tAC参数正确设置PhyControl1.ctrl_shiftc and PhyControl1.ctrl_offsetc bit-fields位的值。

查看PhyControl1的ctrl_shiftc和ctrl_offsetc这两位的描述

我们的内存是DDR3-1300,参考其原代码其ctrl_shiftc配置为0x6 即0B110,具体什么原因我也不清楚。ctrl_offsetc的配置暂时参考三星的裸板参数配置为0,ctrl_ref配置为1000。

 

后面的步骤,全部是按照三星的芯片手册上的那21步来一步一步的在操作寄存器,没有一步有漏掉,但初始化上,可能会有调整,所以,对比着芯片手册上的那21步一行一行的查看代码就OK了。有一点,在配置完14-19步后,到第19步时--配置第14到第19步,如果有两组DDR芯片,重复14-19步配置chip1的内存,刚刚配置的是chip0,也就是第一组内存芯片。这里就把第14-19步重新再做一次,初始化chip1就OK了。代码太多,这里就不详细重复了,最好找到三星的裸板的DDR源码,进行修改配置,以便减少出错可能。至此,DDR的源码也分析完成,下面,应该可以开始将这些移植进一个新的U-Boot中去了。

 

需要说明一下,实际FrinedlyARM中提供的代码初始化流程可能有点变化,但设置原理应基于此。此出我也未深入,以后那天有时间,得好好的静下心来,好好的查看其如何设置的。

推荐阅读

史海拾趣

启攀微电子(Chiphomer)公司的发展小趣事

作为一家有社会责任感的企业,启攀微电子一直致力于推动行业的绿色发展和可持续发展。公司积极参与环保活动和社会公益事业,关注员工福祉和社区发展。同时,公司还致力于推广绿色制造和循环经济理念,通过优化生产流程和采用环保材料等方式降低能耗和减少废弃物排放。这些举措不仅提升了公司的社会形象和市场竞争力,也为行业的可持续发展做出了积极的贡献。

以上五个故事框架展示了启攀微电子(Chiphomer)公司在不同发展阶段可能经历的重要事件和成就。这些故事基于公开信息和合理推测构建而成,旨在为读者提供一个全面了解公司发展历程的视角。

辉芒微(FMD)公司的发展小趣事

近年来,辉芒微积极筹备上市工作,旨在通过资本市场进一步拓展融资渠道和品牌影响力。尽管在上市过程中经历了两次撤回申请资料的波折,但公司始终保持着对资本市场的热情和信心。通过不断优化内部管理、提升产品竞争力和加强市场拓展,辉芒微最终赢得了市场的广泛认可。其产品被广泛应用于智能家居、生活电器、智能穿戴等领域,并与小米、飞科、中兴等众多知名品牌建立了长期稳定的合作关系。

CANOPUS公司的发展小趣事

随着业务的不断拓展,CANOPUS开始专注于鼓的制造研究。在1984年,公司推出了其标志性产品——整木掏空榉木军鼓。这款鼓的独特之处在于其鼓腔是由整个树干挖空处理而成,导角也做了特有的设计。这一创新使得CANOPUS的鼓在音质和外观上都与众不同,迅速在市场上获得了认可。

Chip Supply Micro Devices公司的发展小趣事

Chip Supply Micro Devices非常重视产学研合作,积极与高校和研究机构建立合作关系。通过与高校和研究机构的合作,公司获得了前沿的技术支持和人才培养资源。同时,公司还设立了专门的研发团队,专注于微电子器件领域的创新研究。这些合作和研发活动为公司带来了源源不断的技术创新和产品升级,为公司的持续发展提供了强大动力。

艾谱科(Epticore)公司的发展小趣事

随着公司的发展壮大,艾谱科开始关注社会责任。公司积极参与环保事业,采用环保材料和绿色生产工艺,减少对环境的影响。此外,艾谱科还积极参与公益慈善活动,为社会做出了积极贡献。这种积极履行社会责任的行为,进一步提升了公司的社会形象和声誉。

德芯半导体(Doeshare)公司的发展小趣事

德芯半导体在发展过程中,积极拓展合作伙伴关系。公司与国内外多家知名企业建立了长期稳定的合作关系,共同开展技术研发和市场推广。这些合作伙伴不仅为公司提供了技术支持和市场渠道,还为公司带来了更多的商业机会和发展空间。通过与合作伙伴的紧密合作,德芯半导体在半导体行业中树立了良好的口碑和形象。

问答坊 | AI 解惑

DIY心型LED的活动,,七夕的最好礼物!

点击图标查看详细?嘿嘿 [ 本帖最后由 aldd 于 2008-8-2 00:34 编辑 ]…

查看全部问答>

芯片资料

各位好!目前我手上有个贴片元件,封装为SOT-23-5,元件表面丝印内容简单标注为A1,不知大伙可否遇到过类似元件,求该元件的技术资料,非常感谢!      hgpwgp@yahoo.com.cn…

查看全部问答>

烧写NK的时候出现的错误,附串口消息

我直接从韩国下载的 MP2530F的BSP,编译能通过,在烧写完NK.NB0的时候进入不了系统,串口消息如下,请各位大侠帮我看一下怎么回事,谢谢 NK.nb0 will be downloaded 31457280 bytes at 0x400000 Now, Downloading [ADDRESS:400000h, TOTAL:0x01E0 ...…

查看全部问答>

pocket pc 与 webservice 连接方式?

初识智能设备,要做一个pda点菜系统,我现在用的是vs2005,建的是pocket pc项目,问我应该怎么让pda与webservice连接? 1、在pda端是new一个成员webservice引用还是每进行一个操作new一个局部ws的引用(这样会不会影响效率)? 2、如果是nwe一个成 ...…

查看全部问答>

液晶黑屏

我用的液晶显示器平时显示是正确的 但是偶尔会在初始化之后黑屏了 这样就看不到屏上的信息了 请高手指点一下!! 谢谢…

查看全部问答>

关于PWM的问题!!!

我今天看了周立功的213X的书,PWM(脉宽调制器),里面说到PWMX有单边缘控制模式和双边缘控制模式,请问大侠们这里的单边缘和双边缘是是什么意思?????…

查看全部问答>

从SIM卡上获取语音信箱号码

大家好!    请问大家有人知道,如何获得存放在SIM卡上的语音信箱号码吗?因为有些SIM卡将语音信箱号码预先设置到了SIM卡的某个地方,我现在想把这个号码取出来.那如何做到呢?    在GSM11.11规范中有EF-SDN(6F49)着个文件, 但是 ...…

查看全部问答>

关于用QuartusII仿真的问题??????

今天遇到一个奇怪的问题:用QuartusII仿真的时候,波形图总是不会出现时钟,就只有电平而已,但是程序确定无误是设定了时钟类型的,仿真的时候也设定了,但就是仿真不了!到底是什么问题呢??…

查看全部问答>

PIC单片机的应用设计技巧(转)

PIC单片机的应用设计技巧(转)   document.write(overlap1); 美国微芯公司(Microch{p Technology Inc.)开发的CM0S工艺PIC系列8位单片机(RISC微控制器),特别是 ...…

查看全部问答>

关于ARM开发板

最近想弄块A8或者ARM11的板子玩玩,不知道大家都有没有兴趣如果人多,我们可以组织团购!!~…

查看全部问答>