历史上的今天
今天是:2025年08月19日(星期二)
2021年08月19日 | PLL (Phase Locked Loop)锁相环提供总线时钟
2021-08-19 来源:eefocus
由于一般的晶振受限于工艺与成本,做不到很高的频率,可在需要高频应用时,由相应的器件VCO,实现转成高频,但并不稳定,故利用锁相环路来实现稳定且高频的时脉冲讯号。
本例通过MC9S12XS128这款单片机来展示如何配置锁相环并为总线提供时钟。

一般需要以下几步来进行配置:
1.总线时钟选择外部晶振,通过CLKSEL_PLLSEL配置,为0时,总线时钟来源于外部晶振;为1时,总线时钟来源于PLLCLK。
2.关闭IPLL,通过PLLCTL_PLLON来配置,为1时,打开IPLL;为0时,关闭IPLL。
3.配置PLL的频率,通过SYNR、REFDV和POSTDIV来配置,有如下计算公式进行计算。

常用频率的几个赋值数据(POSTDIV = 0x00,此时f PLL = f VCO)
busclk SYNR REFDV
16M 00|01 80|01
32M 40|03 80|01
40M c0|01 80|01
48M c0|05 80|01
64M c0|07 80|01
80M c0|09 80|01
88M c0|0a 80|01
96M c0|0b 80|01
104M c0|0c 80|01
120M c0|0d 80|01
4.打开IPLL,通过PLLCTL_PLLON来配置,为1时,打开IPLL;为0时,关闭IPLL。
5.判断PLL是否稳定,通过CRGFLG的LOCK位来确定,为1时,PLL稳定;为0时,PLL不稳定。
6.选择PLL作为时钟源,通过CLKSEL_PLLSEL位来配置。
以下为INIT_PLL的代码
void INIT_PLL(void)
{
CLKSEL_PLLSEL=0; //选择外部晶振作为总线时钟
PLLCTL_PLLON=0; // 先关闭PLL
SYNR=0x40 | 0x03;
REFDV=0x80 | 0x01;
POSTDIV=0x00; //配置PLL完成,此时PLL为64MHz
PLLCTL_PLLON=1; //打开PLL
_asm(nop);
_asm(nop); //等待两个机器周期
while(CRGFLG_LOCK==0); // 确定PLL是否稳定 LOCK=1 稳定,=0 不稳定
CLKSEL_PLLSEL =1; //选择PLL作为时钟源,busclock = 32MHz
}
史海拾趣
|
精确的信号调理和高分辨率的测量不再局限于工业或仪器仪表应用,便携式消费类电子设备的设计人员也需要减小系统噪声,这相当具有挑战性,因为电池供电设备中的信号电压很小,系统的精度取决于其本底噪声。为了从信号调理电路中获取最低的本底噪声和 ...… 查看全部问答> |
|
最近做嵌入式开发,我的magicARM2410的ADC驱动总算自己写出来,但是目前又遇到一个问题,那就是,ADC驱动和magicARM2410 linux试验箱的TOUCHSCREEN触屏驱动有冲突,我要使用我的ADC驱动,那就必须卸载试验箱linux已有的触屏驱动, 我想问下各位大 ...… 查看全部问答> |
|
大家好,最近在想一个问题: 我们通过键盘等物理工具,可以形成电流的通断/电压的高低; 然后由半导体的一些物理特性,将这些物理信号判决成逻辑的0或1 我想反过来,如何将逻辑的0或1转换成物理信号的? 比如说8个比特 1000 0001 表示将芯片的0 ...… 查看全部问答> |
|
双击目录,然后就出现如下情况了 Data Abort: Thread=83cfe400 Proc=821267c0 \'explorer.exe\' AKY=00000011 PC=03fb8cd8(coredll.dll+0x00048cd8) RA=03e81f04(commctrl.dll+0x00041f04) BVA=0a11ffff FSR=00000003 Prefetch Abort: Thread=83 ...… 查看全部问答> |
|
如图,怎么觉得heater resistor 不会工作呢。 R291为负温度系数热敏电阻,常温为22K,比较器LM311输出高电平,这样mos管闸断,heater没有电流流过。… 查看全部问答> |
|
课程设计刚做完,发个秒表的程序分享下。实验版是Altera公司的ep2c5q208c8,晶振为50Mhz。功能为复位,启停,用6为数码管显示。精确到1/100s。程序为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_U ...… 查看全部问答> |
|
/*****************************************************************************\\ 文件名: main.c 描述;用于MSP430F149。 异步通讯。 版本:4.20.1 sun_seven \\********************************************** ...… 查看全部问答> |
|
我做一个CORDIC算法产生正弦波的程序,用Q2编写,但是modelsim能仿真出来正弦波波形,但是signaltap抓的波形是上下相反的,一直找不到原因,希望高手能帮帮忙,谢谢啦! 下面是我的程序: module NCO(clk,rst_n,ena,fre_chtr,pha_chtr,sin_out_r, ...… 查看全部问答> |




