欢迎来到天天文库
浏览记录
ID:40524517
大小:162.50 KB
页数:3页
时间:2019-08-04
《ARM9硬件接口学习之四CLOCK》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ARM9硬件接口学习之四CLOCKS3C2410CPU默认的工作主频为12MHz,使用PLL电路可以产生更高的主频供CPU及外围器件使用。S3C2410有两个PLL:MPLL和UPLL,UPLL专用与USB设备。MPLL用于CPU及其他外围器件。通过MPLL会产生三个部分的时钟频率:FCLK、HCLK、PLCK。FCLK用于CPU核,HCLK用于AHB总线的设备(比如SDRAM),PCLK用于APB总线的设备(比如UART)。从时钟结构图中可以查看到使用不同时钟频率的硬件。Figure7-1.ClockGenera
2、torBlockDiagram (注:这里要注意从图中看出,Uart使用的是PCLK,后面Uart实验会用到) 下面介绍MPLL的启动流程:(注:下面内容部分直接摘录自《s3c2410完全开发流程》,Clock部分写了非常好)S3c2410datasheet224页“Figure7-4.Power-OnResetSequence”展示了上电后MPLL启动的过程 请跟随FCLK的图像了解启动过程:1、上电几毫秒后,晶振输出稳定,FCLK=晶振频率,nRESET信号恢复高电平后,CPU开始执行指令。2、我们可以在程序
3、开头启动MPLL,在设置MPLL的几个寄存器后,需要等待一段时间(LockTime),MPLL的输出才稳定。在这段时间(LockTime)内,FCLK停振,CPU停止工作。LockTime的长短由寄存器LOCKTIME设定。3、LockTime之后,MPLL输出正常,CPU工作在新的FCLK下。 设置S3c2410的时钟频率就是设置MPLL的几个寄存器:1、LOCKTIME:设为0x00ffffff前面说过,MPLL启动后需要等待一段时间(LockTime),使得其输出稳定。位[23:12]用于UPLL,位[11:
4、0]用于MPLL。使用确省值0x00ffffff即可。2、CLKDIVN:用来设置FCLK:HCLK:PCLK的比例关系,默认为1:1:1这里值设为0x03,即FCLK:HCLK:PCLK=1:2:4CLKDIVN不同的设置及对应的时钟比例关系如下图: 3、MPLLCON:设为(0x5c <<12)
5、(0x04<<4)
6、(0x00),即0x5c0040对于MPLLCON寄存器,[19:12]为MDIV,[9:4]为PDIV,[1:0]为SDIV。有如下计算公式:MPLL(FCLK)=(m*Fin)/(p*2^s)其
7、中:m=MDIV+8,p=PDIV+2Fin 即默认输入的时钟频率12MHz。MPLLCON设为0x5c0040,可以计算出FCLK=200MHz,再由CLKDIVN的设置可知:HCLK=100MHz,PCLK=50MHz。 通常我们将如上时钟初始化的过程写成clock_init函数供其他函数调用,代码如下:voidclock_init(void){ /*initclock*/rLOCKTIME=0xFFFFFF; /*设置FCLK:HCLK:PCLK=1:2:4,这样假设处理器主频为200
8、M,则HCLK为50M,PCLK为25M。ARM920T内核使用FCLK, 内存控制器,LCD控制器等使用HCLK,看门狗、串口等使用PCLK*/rCLKDIVN =0x3; /* 设置时钟频率为200M*/ rMPLLCON= 0x5c0040; }文件:clock.rar大小:0KB下载:下载
此文档下载收益归作者所有