锁相环是什么?是一种倍频器,它将时钟基频(CGMXCLK)进行分频,产生PLL倍频信号(CGMVCLK),然而,由于它基础理论抽象,很难懂。本文以尽量简明的原则,帮大家学好锁相环初始值的设定
寄存器:
PCTL:锁相环控制寄存器 所在地址 $036
 
通过PRE预分频值查此表可计算出第三位,第二位值以及PRE值
| PRE1 | PRE2 | PRE值 | 预分频系数 | 
| 0 | 0 | 0 | 1 | 
| 0 | 1 | 1 | 2 | 
| 1 | 0 | 2 | 4 | 
| 1 | 1 | 3 | 8 | 
通过VCD电源系数查此表可计算出第一位,第零位以及VPR系数
| VPR1 | VPR0 | VPR值 | VCD电源系数 | 
| 0 | 0 | 0 | 1 | 
| 0 | 1 | 1 | 2 | 
| 1 | 0 | 2 | 4 | 
| 1 | 1 | 3 | 8 | 
其中PRE和VCD由fbus(内部时钟速率)确定,输出时钟为4*fbus,确定方式见下表
| Fbus | PMSH值 | PMSL值 | PMRS值 | PRE值 | VPR值 | 
| 2 | 0 | F5 | D1 | 0 | 0 | 
| 2.4576 | 1 | 2c | 80 | 0 | 1 | 
| 2.5 | 1 | 32 | 83 | 0 | 1 | 
| 4.0 | 1 | E9 | D1 | 0 | 1 | 
| 4.9152 | 2 | 58 | 80 | 0 | 2 | 
| 5.0 | 2 | 63 | 82 | 0 | 2 | 
| 7.3728 | 3 | 84 | C0 | 0 | 2 | 
| 8.0 | 3 | D1 | D0 | 0 | 2 | 
典型应用:
PCTL=0x00;//禁止PLL
PCTL=0x22;//00100010,开启PLL,选择PRE=0,VPR=1
PCTL_PLLON=1;//使能PLL
PCTL_BCS=1;//输出时钟分频选择
PBWC:PLL控制寄存器 所在地址 $037
| 地址 | 7 | 6 | 5 | |
| AUTO 带宽控制方式 | LOCK 带宽是否已稳定(只读) | |||
| 置1 | 自动 | 锁定 | ||
| 置0 | 手动 | 不锁定 | ||
| 默认 | 0 | 0 | 
还有几个寄存器,一般保持复位的值不变,知道即可
PMSH,PMSL:PLL倍率选择器 所在地址$038,$039
PMSH低四位有效,PMSL全部有效。复位后都为0
PMRS:电源范围系数 复位后为0
PMDS:PLL基时钟分频选择器 所在地址$3B
锁相环设置七步走:
(1) 禁止PLL:PCTL=0;
(2) 选择自动控制方式 PBWC=0x80;
(3) 设置分频系至PMSH和PMSL
(4) 设置输出范围系数至PMRS
(5) 根据典型参数表设置PCTL,其中包括PRE值(由Vpr1,Vpr0联合确定),VPR值(由PRE1,PRE0联合确定)和
锁相环使能PCTL_PLLON=1,等待稳定,稳定后,设PBWC_LOCK=0;
(6) 设置输出时钟为CGMVCLK的二分频PCTL_BCS=1
实例:
PCTL=0x00;//step1
PBWC=0x80;//step2
PMSH=0x02;//step3
PMSL=0x58;
PMRS=0x80; //step4
PCTL=0x22; //step5
PCTL_PLLON=1; //step6
PBWC_LOCK=0;
PCTL_BCS=1; //step7
注意锁相环要经过两次使能,如上所示PCTL=0x22; (第一次) PCTL_PLLON=1;(第二次)
其实作为初学,可以直接把典型的代码复制过来,如果想DIY的话,就通过“常用PLL系数表”进行设置即可。