主锁相环MPLL作为系统时钟的参考时钟 辅助锁相环EPLL作为特殊的功能块的参考时钟 MPLL的配置方法 OM【0】寄存器配置为0,则时钟源为XTl,配置为1,则时钟源为外部时钟EXTCLK
EPLL的配置方法 如下图配置CLKSRC【8】,CLKSRC【7】和OM【0】寄存器
正常状况下当改变MPLL时,此时会产生一段locktime,在改变PLL的这段时间,时钟不会作被提供给内部的资源
示例配置时钟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寄存器)
初始化时钟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)
参考程序: