S3C2440的时钟配置

在使用任何一种处理器芯片时,都有必要其时钟配置有清楚地认识,能够灵活掌握其配置方法。在此,就我对S3C2440的时钟配置的认识做简要介绍,若有不合适之处,还望朋友们可以指正。

        通过S3C2440的模式选择引脚(OM2&OM3)的组合方式可以选择S3C2440的时钟源(外部晶振XTIPLL或是外部时钟EXTCLK)。我现有实验板的的OM2、OM3引脚为低电平,则复位后系统主时钟及USB总线时钟均由外部晶振XTIPLL(=12MHz)提供。

        S3C2440处理器的工作频率可达400MHz,这是由于在片内集成有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的数据手册。

        利用12MHz的外部晶振得到271.5MHz的主频,可设置MDIV=173(0xad), PDIV=2, SDIV=2.

         除了可设置内核时钟FCLK,常常还需要设置AHB总线设备使用的HCLK和APB总线设备使用的PCLK,三者之间的关系如何呢?通过寄存器CLKDIVN可设置三者的分频关系,具体可参观数据手册中对此的说明。通常设置三者为1:4:8,1:3:6的分频关系,即若主频FLCK是400MHz,按照1:4:8的设置,那么HLCK是100MHz,PLCK是50MHz。

        若CLKDIVN设置为0x5,那么比例即为1:4:8。前面我们设置271.5MHz的主频,则PCLK=33.9375MHz,可将该频率映射到CLKOUT0引脚,对其测试验证。

编制汇编程序如下:
        
        AREA    Example,CODE,READONLY;声明代码段Example
        ENTRY                        ;标示程序入口
        CODE32                       ;声明32位ARM指令
START   LDR     R0, =0x000ad022      ;FCLK=271.5MHz   
        LDR     R1, =0x4C000004     ;MPLLCON寄存器
        STR     R0,[R1]
       
        LDR     R0, =0x00000005       ;FCLK:HCLK:PCLK=1:4:8
        LDR     R1, =0x4C000014       ;CLOCK DIVIDER control
        STR     R0,[R1]

        LDR     R0, =(0xa<<18)      ;CLKOUT0、CLKOUT1引脚复用   
        LDR     R1, =0x56000070     ;端口H控制寄存器
        STR     R0,[R1]
       
        LDR     R0, =(0x86<<3)      ;输出HCLK及PCLK
        LDR     R1, =0x56000080     ;MISCCR寄存器  
        STR     R0,[R1]
        
        END

        通过示波器测量,PCLK约为34MHz,HCLK约为68MHz,验证通过,O(∩_∩)O~

 

来自: http://hi.baidu.com/lhy%5F2010/blog/item/eebb47cc78faf1590fb345da.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值