天天看点

arm学习笔记-时钟(s3c2451)

arm学习笔记-时钟(s3c2451)



主锁相环MPLL作为系统时钟的参考时钟 辅助锁相环EPLL作为特殊的功能块的参考时钟 MPLL的配置方法 OM【0】寄存器配置为0,则时钟源为XTl,配置为1,则时钟源为外部时钟EXTCLK

arm学习笔记-时钟(s3c2451)

EPLL的配置方法 如下图配置CLKSRC【8】,CLKSRC【7】和OM【0】寄存器

arm学习笔记-时钟(s3c2451)

正常状况下当改变MPLL时,此时会产生一段locktime,在改变PLL的这段时间,时钟不会作被提供给内部的资源

arm学习笔记-时钟(s3c2451)

示例配置时钟REGITER产生特定的频率 eg:PLL 输出频率为533MHz时,

时钟 ARMCLK HCLK PCLK DDRCLK SSMCCLK
频率 533MHz 133MHz 66MHz 266MHz 66MHz
配置寄存器 ARMDIV PREDIV HCLKDIV PCLKDIV HALKHCLK
4'b0000 2'b01 2'b01 1'b1 1'b1

eg:PLL输出频率为800MHz时,

时钟 ARMCLK HCLK PCLK DDRCLK SSMCCLK
频率 400MHz 133MHz 66MHz 266MHz 66MHz
配置寄存器 ARMDIV PREDIV HCLKDIV PCLKDIV HALKHCLK
4'b0001 2'b10 2'b01 1'b1 1'b1

MPLL输出频率计算公式  (配置MPLLCON寄存器)

arm学习笔记-时钟(s3c2451)

初始化时钟clock_init() 1.设置分频   CLKDIV0 2.设置locktime    LOCKCON0 3.设置MPLL         MPLLCON 4.设置时钟源        CLKSRC 公式: ARMCLK = MPLLout/ARMCLK Ratio = MPLLout/(ARMDIV+1) = 800/2 = 400MHz     HCLK = MPLLout/HCLK Ratio = MPLLout/( (PREDIV+1) * (HCLKDIV + 1) ) = 800/(3*2) = 133MHz     PCLK = HCLK/PCLKDIV = 133/2 = 66MHz (串口的时钟为PCLK)

参考程序:

arm学习笔记-时钟(s3c2451)

继续阅读