历史上的今天
返回首页

历史上的今天

今天是: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        

}

上一篇:SCI中断接收

下一篇:SCI中断发送

推荐阅读

史海拾趣

Corex Intervest Inc公司的发展小趣事

在技术创新和产品创新的基础上,Corex Intervest Inc公司开始积极拓展市场。公司通过参加国际电子展览、与各大电商平台合作等方式,不断提升品牌知名度和影响力。同时,公司还注重与客户的沟通与合作,根据客户需求定制产品方案,赢得了客户的广泛信任和好评。

天钰(FITIPOWER)公司的发展小趣事

在技术创新和产品创新的基础上,Corex Intervest Inc公司开始积极拓展市场。公司通过参加国际电子展览、与各大电商平台合作等方式,不断提升品牌知名度和影响力。同时,公司还注重与客户的沟通与合作,根据客户需求定制产品方案,赢得了客户的广泛信任和好评。

Autotrol公司的发展小趣事

随着市场需求的不断变化,Autotrol公司意识到必须不断进行技术创新和产品升级,以满足客户的多样化需求。于是,公司投入大量研发资源,开发出了一系列特色产品,如为更大转矩而制的铜或铁齿轮传动链,以及为安静运行并省钱而特制的塑料齿轮传动链等。这些创新产品不仅提升了Autotrol在市场上的竞争力,也为公司带来了可观的收益。

Harris公司的发展小趣事

进入20世纪30年代,Hammond迎来了其发展历程中的一个重要转折点。在1930年代初,Hammond成为加拿大第一家生产两柱式机架和窄柜系列产品的公司,这些产品迅速获得了广播和通讯行业的青睐。这一创举不仅巩固了Hammond在业内的地位,还为其后续在电气、电子行业的全面发展铺平了道路。

Hitano Enterprise Corp公司的发展小趣事

二战后,随着全球经济的复苏和电气产品的爆炸性需求,Hammond迎来了前所未有的发展机遇。在1950年代和1960年代,Hammond积极扩展产品线,成为变压器、机架、机柜以及电气和电子行业外壳的领先供应商。同时,公司还进行了多次战略性收购,进一步巩固了其在北美电气OEM市场的地位,成为磁性材料的主要供应商之一。

明微公司的发展小趣事

随着全球半导体行业向中国市场的转移,明微公司意识到拓展海外市场的重要性。为了加快海外市场拓展步伐,公司积极加强与国际知名企业的合作与交流,引进先进的技术和管理经验。同时,公司还积极参加国际展会和论坛等活动,提升品牌影响力。这些举措使明微公司在国际市场上逐渐树立起良好的口碑和形象。

问答坊 | AI 解惑

传感器信号调理电路的噪声优化

精确的信号调理和高分辨率的测量不再局限于工业或仪器仪表应用,便携式消费类电子设备的设计人员也需要减小系统噪声,这相当具有挑战性,因为电池供电设备中的信号电压很小,系统的精度取决于其本底噪声。为了从信号调理电路中获取最低的本底噪声和 ...…

查看全部问答>

嵌入式linux下如何卸载内核已有的一些驱动?

最近做嵌入式开发,我的magicARM2410的ADC驱动总算自己写出来,但是目前又遇到一个问题,那就是,ADC驱动和magicARM2410 linux试验箱的TOUCHSCREEN触屏驱动有冲突,我要使用我的ADC驱动,那就必须卸载试验箱linux已有的触屏驱动, 我想问下各位大 ...…

查看全部问答>

怎么由逻辑的0和1,产生不同的物理信号?

大家好,最近在想一个问题: 我们通过键盘等物理工具,可以形成电流的通断/电压的高低; 然后由半导体的一些物理特性,将这些物理信号判决成逻辑的0或1 我想反过来,如何将逻辑的0或1转换成物理信号的? 比如说8个比特 1000 0001 表示将芯片的0 ...…

查看全部问答>

wince data abort问题求思路

双击目录,然后就出现如下情况了 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 不会工作呢

如图,怎么觉得heater resistor 不会工作呢。 R291为负温度系数热敏电阻,常温为22K,比较器LM311输出高电平,这样mos管闸断,heater没有电流流过。…

查看全部问答>

基于FPGA的秒表的设计

课程设计刚做完,发个秒表的程序分享下。实验版是Altera公司的ep2c5q208c8,晶振为50Mhz。功能为复位,启停,用6为数码管显示。精确到1/100s。程序为:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_U ...…

查看全部问答>

关于FSMC,麻烦香版解疑恩,谢谢

https://bbs.eeworld.com.cn/upfiles/img/20092/200921591830577.jpg…

查看全部问答>

请教USART 与PC机通信

/*****************************************************************************\\ 文件名: main.c 描述;用于MSP430F149。 异步通讯。 版本:4.20.1 sun_seven \\********************************************** ...…

查看全部问答>

CORDIC算法基于FPGA的信号发生器设计。

我做一个CORDIC算法产生正弦波的程序,用Q2编写,但是modelsim能仿真出来正弦波波形,但是signaltap抓的波形是上下相反的,一直找不到原因,希望高手能帮帮忙,谢谢啦! 下面是我的程序: module NCO(clk,rst_n,ena,fre_chtr,pha_chtr,sin_out_r, ...…

查看全部问答>

CCS库函数

为什么我的CCS5.1的所有的自带的库函数都无法使用啊。求帮助啊 。。。我需要一个SQRT函数。。。但是编译的时候总是有问题,…

查看全部问答>