tiny6410裸机实验第5章--------------DDR(初始化原理)

来源:互联网 发布:印度软件外包公司 编辑:程序博客网 时间:2024/06/06 04:56

【说明】

                前面我们介绍了地址相关的一些概念以及地址无关码的概念,我们知道了,当程序超过了8KB的时候,我们得把程序复制到DDR中运行,但是,DDR要使用是要先初始化的。6410带有DRAM控制器,它在初始化之后可以让我们对DDR的访问变得十分方便。。。这里我们要初始化2个东西,也就是DRAM控制器,以及DDR本身。在这之前,大家如果对于DDR参数不太熟悉,可以看看这篇文章哦!http://hard.zol.com.cn/2004/0330/90618.shtml

 

【怎么初始化】

                在S3C6410芯片手册中,第5章开头直接给出了初始化DRAM控制器和初始化DDR的步骤!!一步一步来绝对没错的!,先从DRAM控制器开始。

 

【初始化DRAM控制器】

                 直接上芯片手册中的初始化顺序图,然后一步一步介绍

           

 

               1】进入配置状态

                          它说往某某寄存器写入100(二进制),那我们就得先看看这寄存器是干什么的。。

                           

                             哦!原来就这3位是有用的!二话不说,第一步理解了。


                 2】配置时序

                           1)刷新周期

                            这一步十分关键,我们要告诉控制器我们使用的DDR的一些参数。如果参数设置不对,控制器按这参数来操作DDR肯定是不对的。

                            一路找下面,我们发现在一堆配置寄存器后面出现了一个刷新周期寄存器

                            

                            什么是刷新周期呢? 其实我们DDR并不能一直保持数据,它需要每隔一段时间充一下电来维持数据。这个间隔就是刷新周期。 

                             那我怎么知道刷新周期是多少呢?

                             不同DDR不一样 所以要看DDR的手册。。一般DDR手册开头就有介绍,比如我的手册《K4X1G163PC - L(F)E/G》

                             

                             那我们如何设置才能得到7.8us的刷新周期呢?还记得我们的时钟初始化吗,HCLK我们初始化成133MHZ,而DDR用的就是这个时钟,我们来算一下

                             一秒钟是133MHZ那一个时钟周期就是1 / (133 * 10^6) 秒,也就是1 / 133 us,那我们需要7.8us就是7.8 /(1 / 133) 个周期啦哈哈

                            代码中用纳秒,原理一样

                             

                            2)延迟寄存器

                            就在刷新周期寄存器下边我们又看到一个CAS,延迟寄存器。

                            

                           这个又是干什么的呢?CAS就是指当发出写命令后要延迟多少周期再去读取数据,从第0位我们默认为0,而【1:3】 我们就要看DDR手册了。

                           ,还想什么,它叫我们写成3!

                          3)其他参数

                           和上边一样,一路配置下来,只要看到什么参数,就把参数的名字往DDR手册里一复制查找,,里边写什么你就配置成什么就可以啦,没有的就无视咯

                

                3】属性设置

                          这一步需要配置这个寄存器

                     

                      1)设置列地址数,

                         

                       2)设置行地址

                           

                            

                          那我怎么知道列地址数呢,,看DDR的手册!看到这里了,明显了吧!

                       

                         3)设置自动预充电地址

                            

                             一看就知道又要看DDR手册。。。。在这里看到没,,A10!!!!!! 

                            

                        4)设置内存突发长度

                             

                             在DDR手册中有这么些值,,都可以取的

                             

                     4】依旧是属性设置

                               因为内存比较复杂,所以用一个32位的寄存器去设置不够,所以还有个寄存器也要设置,看名字就知道和刚才寄存器是兄弟了

                              

                             1)设置存储长度

                                

                               6410是32位机器,所以就是01了

                              2)设置DDR类型

                                 

                                    可别告诉我你找不到你的是哪种DDR。。。。。。。。看DDR芯片手册的最大的标题尴尬

                                   

                 4】设置芯片

                            

                                     1)设置地址组织方式:

                                             

                                           DDR芯片手册上哪里有说明呢?其实这张图我们见过的,如下,显然是BRC模式,也就是1

                                             

 

【初始化DDR自身】

                        其实现在DDR控制器就可以往DDR发东西了,但是根据手册上的说明,其实DDR控制器还没有设置好,只不过在设置DDR控制器的中间是要先初始化一下DDR自身的,所以在这里我们就来初始化DDR,初始化好了之后,我们再继续初始化DDR控制器剩下的部分内容。

                        S3C6410手册上给出了初始化DDR的办法!!,一目了然,我的是DDR所以选这个

                        

                                             

                        1】寄存器

                                            就是一次又一次往下面这个寄存器写数据就可以啦,,上边叫我们写什么我们就写什么咯哈哈!

                                   

 

【继续DDR控制器】

                                1】设置就绪

                                           现在什么都配置好了,就直接把状态寄存器配置成"REDAY“

                                           

                              2】查询是否就绪

                                            现在就等待它就绪就可以了

                                             

                                              查看最低2位,知道变为01

                                              

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 生鸡蛋拌饭怎么办 出柜家里人会怎么办 百灵鸟怕人撞笼怎么办 乌鸫雏鸟撞笼返生怎么办 泥石流来了怎么办教案 墙壁插座不通电怎么办 当前目录不能用怎么办 海鲜过敏怎么办没有药 哺乳后胸变小怎么办 有脑出血前兆该怎么办 体检发现甲状腺结节怎么办 月子里宝宝感冒怎么办 10天新生儿感冒怎么办 20天新生儿感冒怎么办 新生儿20天鼻塞怎么办 25天新生儿感冒怎么办 42天新生儿感冒怎么办 上呼吸道感染怎么办比较好 小猫咪太调皮怎么办 水晶彩泥弄到衣服上怎么办 进境动植物检疫许可怎么办 跳舞不会听拍子怎么办 税盘丢了注销公司怎么办 认缴资金不到位怎么办 同一单元有凶宅怎么办 有地皮没房产证怎么办 社保资金被侵吞怎么办? 集体计件手脚慢怎么办 发票当月没用完怎么办 非工业用地怎么办环评 商标注册途中英文错误怎么办 孩子的英文不好怎么办 高盛英文不好怎么办 去美国英文不好怎么办 去越南不会英语怎么办 法斗得了毛囊炎怎么办 头发里有毛囊炎怎么办 笔记本画cad慢怎么办 面试打不出问题怎么办 ai撤销多了怎么办 卖钢材没客户怎么办