- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
S3C2440时钟设置详解
S3C2440A中的时钟控制逻辑可以产生必须的时钟信号,包括CPU的FCLK,AHB总线外设的HCLK以及APB总线外设的PCLK。S3C2440A包含两个锁相环(PLL):一个提供给FCLK、HCLK和PCLK,另一个专用于USB模块(48MHz)。时钟控制逻辑可以不使用PLL来减慢时钟,并且可以由软件连接或断开各外设模块的时钟,以降低功耗。
????? S3C2440A的主时钟源由外部时钟(EXTCLK)或者外部晶振(XTIPll)提供,输入时钟源由模式控制引脚OM3和OM2控制选择,在复位信号的上升沿参考OM3和OM2的引脚将OM[3:2]的状态在内部锁定,如图1所示
图1 引导启动时的时钟源选择
选择不同输入时钟源时连接方式如图2所示:
图2 时钟连接参考
通过在片内集成的2个锁相环:MPLL和UPLL,可对输入的Fin=12MHz的晶振频率进行倍频。S3C2440使用了三个倍频因子MDIV、PDIV和SDIV来设置倍频,通过寄存器MPLLCON和UPLLCON可设置倍频因子。其中MPLLCON寄存器用于设置处理器内核时钟主频FCLK,其输入输出频率间的关系为
?????????????????? FCLK=MPLL=(2*m*Fin)/(p*2^s)
其中m=(MDIV+8), p=(PDIV+2), s=SDIV。
其中UPLLCON寄存器用于产生48MHz或96MHz,提供USB时钟(UCLK),其输入输出频率间的关系为
UCLK=UPLL=(m * Fin) / (p * 2^s)
其中m=(MDIV+8), p=(PDIV+2), s=SDIV。
手工计算相对复杂些,我们可以根据欲得到的主频FCLK大小,直接通过查表来获知各倍频因子的设置参数,详见。
S3C2440的数据手册中提供了一个表格来查询各个输出频率和输入频率所对应的MPLL中参数m、p和s的值,使用的时候最好只使用该表格中推荐的数值。
图3 PLL真值表
通过图3的真值表,我们可以得到如果输入时钟为12MHz,输出时钟FCLK为405MHz,可以选择MDIV为127,PDIV为2,SDIV为1。输出48MHz和96MHz是UPLLCON使用的。
除了可设置内核时钟FCLK,还需要设置AHB总线设备使用的HCLK和APB总线设备使用的PCLK。通过CLKDIVN和CAMDIVN这两个寄存器可设置三者的分频关系,如图4 为CLKDIVN的说明,可以通过设置CLKDIVN和CAMDIVN的相关位来设置这三个时钟。
图4 FCLK、HCLK和PCLK关系
具体可参观数据手册中对此的说明。即若主频FLCK是400MHz,如果按照1:4:8的设置,可以先设置CLKDIVN为0101,然后设置CAMDIVN的第9位为0(不设置的时候该位默认为0),此时HLCK是100MHz,PLCK是50MHz。
可将该频率映射到CLKOUT0引脚,对其测试验证。
在我们搭建好2440的硬件平台后,我们在调试硬件的时候,通常需要将系统的时钟测试引脚引出来测试,以确认系统是否达到设计的要求。2440提供了CLKOUT0和CLKOUT1这两个引脚用于测试时钟。可以通过设置MISCCR寄存器的CLKSEL0和CLKSEL1位来选择CLKOUT0和CLKOUT1的时钟源。其时钟源分别有000=MPLL输出,001为UPLL输出,010为RTC输出,011为HCLK,100为PCLK,101为DCLK1/0,11X为保留的。
测试用的汇编程序如下:
??????? AREA??? Example,CODE,READONLY;声明代码段Example
??????? ENTRY??????????????????????? ;标示程序入口
??????? CODE32?????????????????????? ;声明32位ARM指令
START?? LDR???? R0, =0x0005C011????? ;FCLK=400MHz???
??????? LDR???? R1, =0x4C000004 ??? ;MPLLCON寄存器
??????? STR???? R0,[R1]
???????
??????? LDR???? R0, =0????? ;FCLK:HCLK:PCLK=1:4:8
??????? LDR???? R1, =0x4C000014?????? ;CLOCK DIVIDER control
??????? STR???? R0,[R1]
??????? LDR???? R0, =(0xa18)
??????? LDR???? R1, =0??? ;端口H控制寄存器
??????? STR???? R0,[R1]
?;
文档评论(0)