×
单片机 > 单片机程序设计 > 详情

快速学Arm(16)--PLL(锁相环2)

发布时间:2022-08-30 发布时间:
|

通过前一篇介绍,我们知道在Arm的电路在启动或者掉电的时候,是没有使用PLL,因为在掉电的时候PLL是没法工作的.既然知道这一点,在掉电的时候应该断开PLL,而是用晶振直接给电路提供必要的晶振,例如RTC等.


PLL主要有下面这四个寄存器来控制和读取状态:

0xE01FC080PLLCON

0xE01FC084PLLCFG

0xE01FC088PLLSTAT

0xE01FC08CPLLFEED


其中:

PLLCON寄存器:包涵使能连接PLL的位,也就是控制PLL是否进行连接.这个连接需要在向PLLFEED发送正确的信息(馈送序列)的时候才生效,否则及时将使能位置位,PLL也不会连接到电路中.PLLCON必须在PLL开始连接之前就设置好,否则会造成系统不可预知的错误.


PLLCFG寄存器:这个寄存器是用来设置倍频系数M和分频系数N的.这两个值决定了倍频和分频的频率.


PLLSTAT寄存器:从里面可以读出PLLCON,PLLCFG的值,但必须是在PLLFEED的馈送序列被发送,PLLCON,PLLCFG生效以后才可以读到正确的值.


PLLFEED寄存器:向此寄存器以连续的VPB总线周期写入0xAA,0x55,即馈送序列.在正确的序列被写入PLLFEED之后,PLLCON,PLLCFG才生效,PLL电路才能正确的连接到电路中.

现在让我们来看一下每个参数的定义:

1.Fin:选择的时钟源的频率(也就是选择的晶振的频率)

2.Fcco:PLL最终输出给系统的频率SYSCLK,也称为CCO.

3.N:分频系数

4.M:倍频系数

5.Fref:内部参考时钟,=Fin/N.

那么他们之间有这样的关系:

Fcco=(2*M*Fin)/N

.Fin的频率范围在32K~50M

.Fcco的频率范围在275M~550M


从上面的公式中,我们就可以得出希望的PLLCFG寄存器中的M,N两个数值.


Fcclk实际上也是经过Fcco的分频得到的,也就是CPU的频率.同理USB的频率也与Fcco存在着分频关系.


大家可以参考前一篇中的图来理解这些关系,知道了这些关系就知道了寄存器应该怎样来设置,这对理解编程很有好处.


时钟源从晶振直接到达CCO或者经过了PLL到达CCO之后,还要经过其他的分频器才能到达CPU或者具体的接口电路,理解了这个道理就理解了编程时应该如何考虑选择分频器和设置分频参数,这对底层开发理解非常有好处.



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析