[ARM Linux入门与实践] 阿南ARM训练班-第一课课堂总结(转载)

[复制链接]
3118|0
 楼主| 阿南 发表于 2009-3-3 00:08 | 显示全部楼层 |阅读模式
&nbsp;箫笑&nbsp;发表于&nbsp;2009-3-2&nbsp;12:29&nbsp;ARM&nbsp;论坛&nbsp;←返回版面&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />楼主:&nbsp;阿南ARM训练班-第一课课堂总结&nbsp;<br /><br />由于距离等等一大堆方面的原因,是否参加阿南的训练班着实犹豫了一阵子,如今得以如愿,自然分外珍惜,写个总结,认真的缕一下头绪,有不对的地方也希望阿南以及其他前辈们指正一下....<br /><br />个人一向喜欢从零开始学习或者思考一个问题,想当初买回开发板做的第一件事就是把Flash擦个干净,上了课之后,觉得这个“零”还得再往前追溯一点:一块2410,一块NandFlash-k9f1208,两块SDRAM-k4s561632,现在要搭建一个最小系统:<br /><br />第一课,主要讲的就是分析硬件原理图。<br /><br />一、如何看Datasheet?<br />首先要面对的自然是芯片的DataSheet,对于一个完全不了解的芯片,主要先看以下几个方面:<br /><br />1).preview简介。大概的了解一下这款处理器有什么功能,包含了什么模块等等。<br /><br />2).memory内存映射图。对于写程序的人来说,这个东西是相当重要的。<br /><br />3).管脚的分布及其功能。阿南特别强调了某些管脚不可以随便悬空,如nWait用于延长总线周期,如果没有使用必须将其上拉才能释放总线。<br /><br />4).其他的部分可以在今后的开发中用到了再有针对性地看。<br /><br />二、最小系统基本构成<br />跟一个单片机系统差不多,只不过是单片机把存储器集成到芯片里面了,但是这里什么都得自己来。<br />1).MPU<br />2).Flash(NOR/NAND)<br />3).RAM(SDARM/DDR/DR2)<br />4).Power&nbsp;and&nbsp;Clock(PLL)<br />5).Reset&nbsp;circuit<br /><br />三、SDARM接口设计<br />查看DataSheet,主要有以下几种管脚:<br />1).数据线DQ0~DQ15<br />这个与2410的数据总线对应连接就可以了。<br /><br />2).行/列地址线A0~A12<br />由于2410是按照字节寻址,但SDRAM是16Bit半字宽度,所以连接时需要错开一位,将A0连到处理器的A1,而这个系统是通过两块k4s561632串联实现32Bit数据宽度,所以需要进行字对齐连接,将A0接到A2地址总线上,其他顺次接。<br /><br />3).Bank地址线BA0~BA1<br />在2410的手册里面,有个SDRAM&nbsp;BANK&nbsp;ADDRESS&nbsp;PIN&nbsp;CONNECTION表,里面规定了不同组织结构的SDARM的Bank地址线。所以首先要明白存储器的组织结构,看K4S56163的芯片手册,标注:4M*16Bit*4Banks。<br />这表示每个Bank有4M大小,即由行列地址确定的存储单元个数为4M个,16Bit是位宽,即每个存储单元存储的数据大小为16bit半字,一共包含有4个Bank,所以这个SDRAM的总容量为32MB(256Mbit)。根据这个就可以确定Bank地址线为A[24:23]。<br />再说一下SDRAM的访问过程,大概是这样的:首先送出Bank地址,然后再依次送出行列地址确定需要访问的存储单元,最后进行数据交换。<br /><br />4).控制引脚<br />由于2410集成了SDRAM的管理器,所以接到相应的管脚就是了,主要是行选通RAS,列选通CASE,写使能WE,LDQM和UDQM数据I/O屏蔽用于在读模式下控制输出缓冲,在写模式下屏蔽输入数据,CS片选接在nGS6,即是把SDARM挂接在Bank6上,另外还有时钟控制线,电源等。<br /><br />四、NandFlash接口设计<br />NandFlash与NorFlash不同,它是非线性的存储器,所以它应该不是映射到2410的内存空间上的。2410有专门的NandFlash接口管脚,相对比较容易一点,八位数据线直接与处理器的数据总线相连,ALE地址允许,CLE命令允许,CS片选使能,读/写使能,R/B等几根线都有对应的管脚相连。由于NandFlash共用八位数据线传输地址和数据,所以2410上有个NCON引脚用于选择地址的周期,一般情况下3个周期就可以完成24位的寻址范围。<br />关于NandFlash的启动,如果将芯片设置成NandFlash启动,会有4K大小的SRAM映射在0x0地址处,上电后硬件自动将前4K大小的代码搬到这里,首先从SRAM中运行程序,在这4K代码里需要完成将其他代码拷贝到SDRAM中,最后令程序在SDRAM中运行。<br /><br />五、电源、时钟和复位电路<br />提到一个,设计电源的时候先让外围电路通电,最后才让处理器上电,大概与正确的开电脑顺序是相同的,主要考虑的是万一处理器已复位完成开始运行时,但要访问的外围器件还未准备就绪,就有可能会发生意外。<br /><br />大概先这么多吧,其他的想到再来补充......<br /><br /><br /><br /><br />阿南&nbsp;发表于&nbsp;2009-3-3&nbsp;00:05&nbsp;ARM&nbsp;论坛&nbsp;←返回版面&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />7楼:&nbsp;哈哈,总结是很好的习惯,不仅总结加深自己所掌握的,也有利于&nbsp;<br /><br />以后的学习.而且还可以让阿南知道您所掌握的情况.<br />这些是下午讲的具体的技术知识,阿南更希望大伙对上午所交流的非具体技术的东东,如人生\职业发展等有更多的体会,这些有可能是关系到人的一生的.<br />再次鼓励支持,希望能有更多的总结\支持.<br /><br />&nbsp;&nbsp;&nbsp;阿南ARM训练班,兄弟们给个建议:<br />Email:ccn422@hotmail.com;QQ:545126343&nbsp;<br />《ARM&nbsp;Linux入门与实践》书友会&nbsp;<br /><br />&nbsp;<br />&nbsp;<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5786

主题

10218

帖子

462

粉丝
快速回复 在线客服 返回列表 返回顶部