PLL锁相环时钟设定
Cyclone器件中PLL的使用
Cyclone器件中PLL的使用摘要:CycloneFPGA具有锁相环(PLL)和全局时钟网络,提供完整的时钟管理方案。
CyclonePLL具有时钟倍频和分频、相位偏移、可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制。
AlteraQuartuII软件无需任何外部器件,就可以启用CyclonePLL和相关功能。
本文将介绍如何设计和使用CyclonePLL功能。
PLL常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出(TCO)和建立(TSU)时间。
关键字:CycloneFPGA锁相环PLL1.硬件结构每个CycloneFPGA包括具有多达两个PLL。
表1为几种型号CycloneFPGA内可用的PLL数量。
表1注释:(1)位于器件的左侧中部(2)位于器件的右侧中部表2:CyclonePLL功能功能时钟倍频和分频相位偏移可编程占空比内部时钟输出数量外部时钟输出数量(4)锁定端口可以输入逻辑阵列PLL 时钟输出可以输入逻辑阵列说明M/(N某后cale计数器)(1)小至156皮秒(p)的增量幅度(2),(3)每个PLL两个输出每个PLL一个输出表2注释:(1)M,N和后cale计数器的值从1至32;(2)最小的相位偏移量为压控振荡器(VCO)周期除以8;(3)对于角度调整,CycloneFPGA的偏移输出频率的增量至少为45o。
更小的角度增量可能取决于PLL时钟输出的倍频/分频系数;(4)100脚的扁平四方封装(TQFP)的EP1C3器件不支持PLLLVDS输出或外部时钟输出,144脚TQFP封装的EP1C6PLL2不支持外部时钟输出。
PLL主要作用就是把内部/外部时钟的相位和频率同步于输入参考时钟。
PLL由许多部分组成,共同完成相位调整。
CyclonePLL采用一个相位频率检测器(PFD)把参考输入时钟的上升沿和反馈时钟对齐。
根据占空比规定确定下降沿。
fpga的pll指标 -回复
fpga的pll指标-回复“FPGA的PLL指标”引言:现如今的数字系统设计中,可编程逻辑器件(FPGA)在嵌入式系统和数字电路应用中扮演着关键的角色。
时钟信号作为数字系统设计中的核心,对于FPGA来说尤为重要。
为了提供高质量的时钟信号,FPGA通常配备了可编程锁相环(PLL)。
本文将介绍FPGA的PLL指标,包括时钟输入范围、频率分辨率、锁定时间、输出抖动和相位噪声等特性。
一、时钟输入范围:时钟输入范围是指PLL接受的时钟信号的频率范围。
对于FPGA的PLL,时钟输入范围通常由两个参数确定:最小输入频率和最大输入频率。
最小输入频率定义了PLL能够稳定工作的最低频率,而最大输入频率则定义了PLL能够接受的最高频率。
这两个参数一般以赫兹(Hz)为单位进行表示。
二、频率分辨率:频率分辨率是指PLL可以实现的最小变化范围。
在FPGA中,频率分辨率通常由一个数字控制字(Digital Control Word,DCW)来定义。
该数字控制字由FPGA的软件编程确定,并决定了PLL输出频率的调整步长。
频率分辨率的大小决定了PLL输出频率的精度。
三、锁定时间:锁定时间是指PLL从接收新的输入时钟信号到输出的时钟信号稳定并达到设定频率的时间。
锁定时间受到PLL内部电路的延迟以及输入信号的稳定性的影响。
通常情况下,锁定时间越短越好,因为短的锁定时间意味着FPGA可以更快地响应时钟频率的变化。
四、输出抖动:输出抖动是指PLL输出时钟信号的时间抖动。
时间抖动是指相邻时钟周期之间的时间差异。
由于PLL内部电路中的噪声以及输入时钟信号的不稳定性,输出时钟信号存在一定的抖动。
对于某些应用,如高精度时序要求的系统,输出抖动可能是一个重要的考虑因素。
五、相位噪声:相位噪声是指PLL输出时钟信号的相位抖动。
相位抖动是指相邻时钟周期之间的相位差异。
相位噪声对于时钟数据同步、高速串行通信和精确频率合成等应用至关重要。
低相位噪声的PLL可以提供更稳定和可靠的时钟信号。
PLL锁相环时钟设定
PLL锁相环时钟设定未配置锁相环时(OSCCLK_PLLSEL=0):总线频率=外部晶振频率(OSCCLK)/2配置锁相环时(OSCCLK_PLLSEL=1): 系统时钟由锁相环提供,总线频率=倍频后频率(PLLCLK)/2时钟频率计算方法Fvco=2*Fosc*(SYNDIN+1)/(REFDIV+1)Fpll=Fvco/(2*POSTDIV)当POSTDIV=0时,Fpll=FvcoFbus=Fpll/2CRGFLG_LOCK==1时,说明PLLCLK稳定,可输出。
锁相环从设定到稳定需要时间,故期间应加几条空语句。
例程:void CLK_Init(void) {CLKSEL=0x00; //选择OSCCLK为系统时钟源16M PLLCTL_PLLON=1; //开启锁相环,锁相环电路允许//频率设定80M时SYNR = 0xc0 | 0x09;REFDV = 0x80 | 0x01;POSTDIV = 0x00; // PLLCLOCK=2*osc*(1+SYNR)/(1+REFDV)=160MHz; _asm(nop);_asm(nop);while(!CRGFLG_LOCK); // 时钟频率已稳定,锁相环频率锁定CLKSEL_PLLSEL=1; //使能锁相环时钟}PWM模块PWME:PWM允许寄存器,置1时允许输出。
PWMPOL:极性寄存器。
置1时首先输出高电平。
2、3、6、7、置1时clock SB 作为时钟源,置0时clock B作为时钟源PWMCAE:居中对齐允许寄存器,只有当通道输出禁止时才能设置此寄存器置1时为居中对齐,置0时左对齐PWMSCLA:比例因子寄存器A;用于提供clock SA的比例因子Clock SA的时钟频率= clock A/(2*PWMSCLA)当PWMSCLA为0时比例因子默认为256. CLOCKSB 计算方法类似,寄存器为PWMSCLB。
PWMCNTx:通道计数寄存器,一般设置值为0x00;PWMPERx:周期寄存器;左对齐时周期计算方法:PWMxPeriod=指定时钟周期乘以PWMPERx的值居中对齐时=指定时钟周期乘PWMPERx的值再乘2;PWMDTYx:占空比寄存器。
pll 时钟相位的作用
pll 时钟相位的作用
PLL(Phase-Locked Loop,锁相环)时钟相位的作用在于:
1.调整时钟频率:通过PLL的频率合成、频率分频和频率锁定等功能,可以
将输入的时钟信号(如50MHz)转换成符合特定要求的输出时钟信号(如150MHz)。
同时,PLL能够实现时钟频率的稳定性控制和抖动降低。
2.保持时钟相位:由于时钟信号在传输过程中容易因信号衰减、干扰等原因
而发生相位偏移或漂移,PLL通过引入反馈机制,使输出时钟与输入时钟在相位上保持一致,消除了输入时钟信号的相位抖动和漂移问题,提高了时序稳定性和系统性能。
时钟发生模块CGM与锁相环PLL
12.2.1 锁相环PLL的基本概念(1)锁相技术与频率合成技术①锁相技术:就是实现相位自动控制的一门科学,利用它可以得到频带范围宽、波道多、稳定度高、精度高的频率源。
②频率合成技术:就是利用一个或几个具有高稳定度和高精度的频率源(一般由晶体振荡器产生),通过对它们进行加减(混频),乘(倍频),除(分频)运算,产生大量的具有相同频率稳定度和频率精度的频率信号。
锁相环频率合成技术在通讯、雷达、导航、宇航、遥控遥测、电子技术测量等领域都有广泛的应用。
为了得到稳定度高、精度高的频率源,通常采用频率合成技术。
频率合成技术主要有两种:直接频率合成技术和间接频率合成技术。
③直接频率合成技术:是将一个或几个晶体振荡器产生的频率信号通过谐波发生器产生一系列频率信号,然后再对这些频率信号进行倍频、分频和混频,最后得到大量的频率信号。
其优点是:频率稳定度高,频率转换时间短(可达微秒量级),能做到很小的频率间隔。
缺点是:系统中要用到大量的混频器、滤波器等,从而导致体积大,成本高,安装调试复杂,故只用于频率精度要求很高的场合。
④间接频率合成技术:是利用锁相技术来产生大量的具有高稳定度和高精度的频率源。
由于间接频率合成器的关键部件是锁相环,故通常称为锁相环频率合成器。
由于锁相环频率合成器的主要部件都易于集成,一般只加一个分频器和一个一阶低通滤波器,故其具有体积小、重量轻、成本低、安装和调试简单等优点。
锁相环频率合成器在性能上逐渐接近直接频率合成器,所以它在电子技术中得到了日益广泛的应用,并在应用中得到迅速发展。
(2)锁相环频率合成器的基本原理锁相环频率合成器的各个部件基准频率源:基准频率源提供一个稳定频率源,其频率为fr,一般用精度很高的石英晶体振荡器产生,是锁相环的输入信号。
签相器:签相器是一个误差检测元件。
它将基准频率源的输出信号fr的相位与压控振荡器输出信号fo的相位相比较,产生一个电压输出信号ud,其大小取决于两个输入信号的相位差。
PLL设计关键基础及基本参数确定方法
PLL设计关键基础及基本参数确定方法PLL(锁相环)是一种电路设计技术,用于将输入信号的频率和相位合成为与参考信号相同的输出信号。
它在各种应用领域中具有广泛的应用,包括通信系统、数据传输、时钟发生器、频率合成器等。
1.建立模型:确定所需的频率范围和准确度,并选择适当的振荡器作为参考信号源。
建立时钟和相位比较器的模型,以及低通滤波器等组成部分的模型。
2.频率范围和准确度:确定PLL所需的输出频率范围和准确度。
这取决于具体的应用需求,如通信系统中需要的频率范围和准确度。
一般来说,更高的频率范围和准确度要求会导致设计更复杂的PLL电路。
3.反馈环:选择适当的反馈环型式,如基本PLL、全数字PLL或混合模拟数字PLL。
这取决于应用需求和设计复杂度。
基本PLL适用于频率较低的应用,但对相位噪声较敏感。
全数字PLL则采用数字环路滤波器,具有更高的鲁棒性和可控性。
4. 相位锁定范围(Phase Locked Loop Range):确定PLL的相位锁定范围,即输入信号的相位偏移量。
这取决于具体应用中的信号变化范围和要求。
较大的相位锁定范围会导致更高的设计复杂度。
5.闭环带宽:确定PLL的闭环带宽,即相位比较器输出与输出信号的相位偏差之间的关系。
较大的闭环带宽可以提供更高的锁定速度,但可能会导致更高的相位噪声。
6. 电源抑制比(Power Supply Rejection Ratio,PSRR):确定PLL对电源噪声的抑制能力。
电源噪声可能会影响PLL的性能,因此需要设计合适的滤波器和抑制电源噪声的能力。
7.噪声性能:确定PLL对输入信号噪声和环路滤波器自身噪声的敏感度。
这取决于环路滤波器的设计和反馈环的类型。
一般来说,全数字PLL 具有更好的噪声性能。
8.稳定性和抖动:确定PLL的稳定性和抖动性能。
PLL需要能够在各种工作条件下保持稳定,不受温度、电源变化等因素的影响。
抖动性能衡量了PLL输出信号的时钟稳定性。
pll锁相环
第11讲 PLL锁相环一、PLL的概述:Cyclone PLL具有时钟倍频和分频、相位偏移、可编程占空比和外部时钟输出,进行系统级的时钟管理和偏移控制。
Altera® Quartus® II软件无需任何外部器件,就可以启用Cyclone PLL和相关功能。
PLL常用于同步内部器件时钟和外部时钟,使内部工作的时钟频率比外部时钟更高,时钟延迟和时钟偏移最小,减小或调整时钟到输出(TCO)和建立(TSU)时间。
硬件结构每个Cyclone FPGA包括具有多达两个PLL。
表1为种型号Cyclone FPGA内可用的PLL数量。
二、使用方法:1、在画图区双击鼠标左键,在SYMBOL窗口点击“MegaWizard Plug-InManager…”按钮。
2、选择第1项“Create a new custom megafunction variation”,点击Next下一步:3、在I/0选项中选中ALTPLL,并在命名栏给PLL取个名字,如PLL1:4、点击下一步:5、将速度等级设置为8,输入时钟频率设为50MHZ,输出时钟补偿为C0,点击下一步:6、将Create an ‘areset’input to asynchronously reset the PLL和Create ‘locked’output两个选项前的钩去掉:7、点击下一步:8、在Clock multiplication factor栏设置倍频率,如上图设置为2,也就是说在输入为50MHZ的情况下,经过PLL后频率变为100MHZ。
在Clock division factor栏可以设置分频率,也就相当于将输入的频率除以所设置的系数。
点击下一步:此页不选择C1,点击下一步:此页不选择e0,点击下一步:此页不做选择,点击下一步:9、点击Finish完成设置。
锁相环配置时钟
锁相环配置时钟锁相环作为一个提供系统时钟的模块,是一个基本的模块,几乎每次编程序都得用到。
下面记一下怎样配置锁相环来设定想要的系统时钟。
锁相环PLL、自时钟模式和前面说的实时中断RTI、看门狗COP都属于系统时钟与复位CRG中的模块,固前面用到的寄存器,这里有些会再用到。
在程序中配置锁相环的步骤如下:第一、禁止总中断;第二、寄存器CLKSEL的第七位置0,即CLKSEL_PLLSEL=0。
选择时钟源为外部晶振OSCCLK,在PLL程序执行前,内部总线频率为OSCCLK/2。
CLKSEL_PLLSEL=0时,系统时钟由外部晶振直接提供,系统内部总线频率=OSCCLK/2(OSCCLK为外部晶振频率)。
CLKSEL_PLLSEL=1时,系统时钟由锁相环提供,此时系统内部总线频率=PLLCLK/2 (PLLCLK为锁相环倍频后的频率)。
第三、禁止锁相环PLL,即PLLCTL_PLLON=0。
当PLLCTL_PLLON=0时,关闭PLL电路。
当PLLCTL_PLLON=1时,打开PLL电路。
第四、根据想要的时钟频率设置SYNR和REFDV两个寄存器。
SYNR和REFDV两个寄存器专用于锁相环时钟PLLCLK的频率计算,计算公式是:PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)其中,PLLCLK为PLL模块输出的时钟频率;OSCCLK为晶振频率;SYNR、REFDV 分别为寄存器SYNR、REFDV中的值。
这两个寄存器只有在PLLSEL=0时才能够写入(这里就是第二步的设置原因所在了)。
第五、打开PLL,即PLLCTL_PLLON=1。
第六、CRGFLG_LOCK位,确定PLL是否稳定。
当锁相环PLL电路输出的频率达到目标频率的足够小的误差范围内时,LOCK位置1,此时说明PLLCLK已经稳定,可以作为系统的时钟了。
该位在正常情况下为只读位。
第七、PLLCLK稳定后,允许锁相环时钟源PLLCLK为系统提供时钟,即CLKSEL_PLLSEL=1。
PLL时钟
什么是PLL2007-01-18 16:53 1580人阅读评论(0) 收藏举报PLL 是Phase-Locked Loop(锁相环)的缩写。
什么是锁相环?锁相环是指一种电路或者模块,它用于在通信的接收机中,其作用是对接收到的信号进行处理,并从其中提取某个时钟的相位信息。
或者说,对于接收到的信号,仿制一个时钟信号,使得这两个信号从某种角度来看是同步的(或者说,相干的)。
由于锁定情形下(即完成捕捉后),该仿制的时钟信号相对于接收到的信号中的时钟信号具有一定的相差,所以很形象地称其为锁相器。
而一般情形下,这种锁相环的三个组成部分和相应的运作机理是:1 鉴相器:用于判断锁相器所输出的时钟信号和接收信号中的时钟的相差的幅度;2 可调相/调频的时钟发生器器:用于根据鉴相器所输出的信号来适当的调节锁相器内部的时钟输出信号的频率或者相位,使得锁相器完成上述的固定相差功能;3 环路滤波器:用于对鉴相器的输出信号进行滤波和平滑,大多数情形下是一个低通滤波器,用于滤除由于数据的变化和其他不稳定因素对整个模块的影响。
从上可以看出,大致有如下框图:┌─────┐┌─────┐┌───────┐→─┤鉴相器├─→─┤环路滤波器├─→─┤受控时钟发生器├→┬─→└──┬──┘└─────┘└───────┘│↑↓└──────────────────────────┘可见,是一个负反馈环路结构,所以一般称为锁相环(PLL: Phase Locking Loop)锁相环有很多种类,可以是数字的也可以是模拟的也可以是混合的,可以用于恢复载波也可以用于恢复基带信号时钟。
PLL时钟是什么为锁相回路或锁相环,用来统一整合时脉讯号,使内存能正确的存取资料。
PLL用于振荡器中的反馈技术。
锁相环是一种反馈电路,其作用是使得电路上的时钟和某一外部时钟的相位同步。
PLL通过比较外部信号的相位和由压控晶振(VCXO)的相位来实现同步的,在比较的过程中,锁相环电路会不断根据外部信号的相位来调整本地晶振的时钟相位,直到两个信号的相位同步。
锁相环指标 -回复
锁相环指标-回复什么是锁相环指标?锁相环指标是指用来衡量锁相环(Phase-Locked Loop,PLL)性能的各种参数和指标。
PLL是一种电路系统,通过对输入信号的相位进行比较,并根据比较结果调整本身输出信号的相位,从而使输出信号保持与输入信号的相位同步。
在各种通信、控制和测量领域,PLL已经广泛应用。
而锁相环指标则是评估PLL工作性能和稳定度的重要依据。
有哪些常见的锁相环指标?实际上,锁相环的指标非常多,并且根据具体应用的不同可能略有差异。
下面列举几个常见的锁相环指标:1. 锁定时间(Lock time):指PLL从失锁状态转变为锁定状态所需要的时间。
锁定时间短是衡量PLL性能和适用性的重要指标之一。
2. 锁定范围(Lock range):指PLL在输入信号频率范围内能够保持稳定锁定的能力。
通常用频率范围或相位范围来表示。
3. 噪声性能(Noise performance):指PLL对输入信号中的噪声和扰动的抵抗能力。
好的锁相环应该能够在抑制噪声的同时保持输出信号的稳定性。
4. 抖动(Jitter):指信号在时间上的不稳定性,可以通过锁相环来降低抖动。
抖动越小,表明锁相环性能越好。
5. 相位噪声(Phase noise):指锁相环输出信号相位随时间的变化情况。
相位噪声小的锁相环输出信号更加稳定。
6. 频率稳定度(Frequency stability):指锁相环输出信号频率的变化程度。
频率稳定度好的锁相环输出信号与输入信号的频率差距很小。
以上仅为锁相环指标中的几个常见要素,根据不同应用的需求,可能还会有其他更具体的指标。
锁相环指标如何优化?优化锁相环指标是实际应用中非常重要的任务,因为合理的指标设计和优化可以提高PLL的性能,提高系统的可靠性和稳定性。
1. 设计合适的环路带宽:适当选择环路带宽可以平衡相位噪声和锁定时间的要求。
过高的带宽容易引入噪声,过低的带宽又会增加锁定时间。
2. 添加滤波器:通过添加滤波器来抑制输入信号中的噪声和频率扰动,从而提高锁相环的噪声性能和稳定性。
PLL锁相环的设置
PLL锁相环的设置PLL锁相环的设置.分类:xs1282011-11-1022:39120人阅读评论(0)收藏举报PLL锁相环的设置还是比较简单的,因为东西很死,完全可以照搬。
主要配置的就是REFDV(范围是0到63,CRG参考分频寄存器)和SYNR(范围是0到15,CRG合成器寄存器)。
计算公式是PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1),其中OSCCLK为系统时钟,而PLLCLK为锁相环后的时钟。
想要得到PLLCLK的时钟可以对SYNR和REFDV进行一些配置。
#include"derivative.h"//锁相环初始化函数void Init_PLL_16M(void){CLKSEL=0X00;//disengage PLL to systemPLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(1+1)/(1+1)=32MHzREFDV=1;//REFDV范围为0~63SYNR=1;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it;//选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=32/2=16MHz}void Init_PLL_24M(void){CLKSEL=0X00;//disengage PLL to systemPLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)REFDV=1;//REFDV范围为0~63SYNR=2;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=48/2=24MHz}void Init_PLL_32M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(3+1)/(1+1)=64MHzREFDV=1;//REFDV范围为0~63SYNR=3;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=64/2=32MHz}void Init_PLL_48M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)REFDV=1;//REFDV范围为0~63SYNR=5;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=96/2=48MHz}void Init_PLL_64M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(7+1)/(1+1)=128MHzREFDV=1;//REFDV范围为0~63SYNR=7;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=48/2=64MHz}void Init_PLL_72M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(8+1)/(1+1)=144MHzREFDV=1;//REFDV范围为0~63SYNR=8;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=144/2=72MHz}void Init_PLL_80M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(9+1)/(1+1)=160MHzREFDV=1;//REFDV范围为0~63SYNR=9;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=160/2=80MHz}void Init_PLL_88M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(10+1)/(1+1)=176MHzREFDV=1;//REFDV范围为0~63SYNR=10;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=176/2=88MHz}void Init_PLL_96M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(11+1)/(1+1)=192MHzREFDV=1;//REFDV范围为0~63SYNR=11;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=192/2=96MHz}void Init_PLL_104M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(12+1)/(1+1)=208MHzREFDV=1;//REFDV范围为0~63SYNR=12;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it;//选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=208/2=104MHz}void Init_PLL_120M(void){CLKSEL=0X00;//disengage PLL to system PLLCTL_PLLON=1;//turn on PLL//PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)//锁相环时钟=2*16*(14+1)/(1+1)=240MHzREFDV=1;//REFDV范围为0~63SYNR=14;//SYNR范围为0~15_asm(nop);_asm(nop);_asm(nop);//等待锁相环稳定while(!(CRGFLG&0X08));//when pll is steady,then use it; //选定锁相环位,Bus Clock=PLLCLK/2;CLKSEL=0X80;//总线时钟=240/2=120MHz}。
Actel FPGA中PLL和全局时钟信号线
library IEEE;use IEEE.std_logic_1164.all;USE IEEE.STD_LOGIC_TEXTIO.ALL;USE STD.TEXTIO.ALL;entity testbench isend entity testbench;architecture test_reg of testbench iscomponent mydesign isport( POWERDOWN : in std_logic;CLKA : in std_logic;LOCK : out std_logic;GLA : out std_logic);end component;signal POWERDOWN : std_logic;signal CLKA : std_logic:='0';signal LOCK, GLA : std_logic;constant ClockPeriod : TIME := 100 ns;beginUUT : mydesign port map (POWERDOWN=>POWERDOWN,CLKA=>CLKA,LOCK=>LOCK, GLA=>GLA);generate_clock : PROCESS (CLKA)BEGIN -- processCLKA <= NOT CLKA AFTER ClockPeriod/2;END PROCESS;process beginPOWERDOWN<='0';wait for 2000 ns;POWERDOWN<='1';wait for 100 ns;wait;end process;end architecture test_reg;测试结果如下图所示:由图可见,锁相环在lock信号变为高电平时生成了符合要求的输出时钟信号。
2.采用Clock & Management下的PLL-Static模块来实现输入时钟信号的相移功能(通过SmartDesign入口),Static PLL配置如下:采用上面的testbench,将其中的被调用模块名修改为此处PLL的模块名,在modelsim 环境下进行仿真,获得结果如下:从上图可见,在lock信号置高电平后,gla信号准确地在迟延90度后跟踪给定信号。
pll ip核差分时钟
pll ip核差分时钟
PLL IP核差分时钟是一种基于锁相环(Phase-Locked Loop, PLL)技术的IP核,用于生成差分时钟信号。
PLL是一种电路技术,用于将输入的参考时钟信号锁定到特定的频率和相位,然后输出一个稳定的时钟信号。
差分时钟是一种由两个相反相位的时钟信号组成的信号,常用于高速数据传输和抗干扰能力较强的应用中。
PLL IP核差分时钟通常包括以下主要组成部分:
1. 相频比较器(Phase-Frequency Detector, PFD):用于比较输入的参考时钟信号和反馈时钟信号的相位和频率差异,并产生一个控制电压。
2. 锁相环滤波器(Loop Filter):用于滤波和平滑相频比较器输出的控制电压,以提供稳定的控制信号给振荡器。
3. 振荡器(VCO):根据控制信号的变化,产生一个相应频率的时钟信号。
4. 分频器(Divider):将振荡器输出的时钟信号进行分频,以满足特定的时钟频率要求。
5. 反馈路径:将分频后的时钟信号反馈给相频比较器,与参考时钟信号进行比较,实现锁相环的闭环控制。
通过调整PLL的参数和反馈路径,可以实现对输出时钟信号频率和相位的精确控制。
PLL IP核差分时钟广泛应用于数字系统中,例如高速数据传输接口(如PCIe、USB、以太网等)、高性能处理器、通
信系统等。
FPGA学习系列:14. 锁相环pll设计
FPGA学习系列:14. 锁相环pll设计
设计背景:
在我们设计工程中我们会用到100M,500M等时钟,如果我们的晶振达不到我们就需要倍频,再上一个文档中我们了解到了分频,可是倍频我们改怎么做了,这里我们就用了altera的IP核锁相环。
今天我们将去学习简单的IP核的调用和生成。
设计原理:
本次的设计我们调用IP核锁相环了生成一个200M的时钟,下面我们就来学习和使用简单的IP核。
设计架构图:
设计流程:
新建工程打开tools,然后选择:
然后出现下面的界面,第一个句是建立新的IP核,第二个打开你建立好的以便于我们修改,第三个是复制一个,我们选择第一个选择,建立一个,然后下一步.
然后跳出下面的界面,我们选择下面的
然后在右边选择我们的语言verilog ,然后给我们建立的IP核起一个名字。
然后跳出下面的界面,inclk0位输入我们默认为50M,areset位复位高电平有效,c0位输出,locked位输出标志位,然后输入我们100M改为50M,下一步。
为了只观的看到各个引脚的情况,我们下一步,不进行操作。
我们可以改我们的输出时钟为多少,可以改输出时钟的相位,占空比,我们写入输出位。
simulink锁相环pll用法
simulink锁相环pll用法
Simulink中的锁相环(Phase-Locked Loop,PLL)是一种常用的信号处理器件,用于频率和相位同步。
它可以用于许多应用中,例如通信系统、数据转换、时钟恢复和信号重构等。
在Simulink中使用PLL有几个关键的步骤:
1.模拟输入信号:首先需要生成或获取输入信号,这通常是
一个模拟信号或数字信号。
2.创建PLL模块:打开Simulink环境,创建一个新的模型,
在模型中添加PLL模块。
对于PLL模块的创建,可以在
Simulink库中搜索PLL模块并将其拖放到模型中。
3.设置参数:对于PLL模块,需要设置一些关键参数,例如
参考频率(Reference Frequency)、带宽(Loop Bandwidth)、初始相位(Initial Phase)等。
这些参数决定了PLL的性能
和工作方式。
4.连接信号和参考:将输入信号连接到PLL模块,并指定参
考信号。
参考信号可以是外部提供的,也可以是由PLL根
据输入信号生成的稳定参考。
5.仿真和分析:设置好参数并连接信号后,运行模型进行仿
真。
可以观察输出信号的频率和相位与参考信号的同步情
况,并进行性能分析和优化。
需要注意的是,PLL的具体用法和设置参数会因应用和设计需求而有所差异。
Simulink提供了丰富的库和模块,可以根据具体
应用需求选择和配置适当的PLL模块。
还可以通过自定义模块或编写MATLAB脚本来实现更高级的PLL功能。
F2812的时钟和控制系统
F2812的时钟和控制系统众所周知,支撑我们身体四肢能够灵活运动的能量来源于心脏,正是心脏不停的有规律的跳动给身体的各个机能供血,我们才能去做任意我们想做的事情。
如果我们的身体过度疲劳,或者感染了细菌病毒而生病了,这个时候就会有医生来给我们检查身体,并且进行治疗。
其实DSP也一样,需要一个类似于心脏的模块来提供其正常运行的动力和节奏。
在这一章里面,我们一起来学习F2812的“心脏”——F2812的振荡器、锁相环PLL和时钟机制。
除此之外还要学习给DSP做“身体检查”,以维持其正常工作的看门狗模块。
1、振荡器OSC(Oscillator)和锁相环PLL(Phase Locked Logic)为了能够让F2812能够按部就班的执行相应的代码,实现相应的功能,他需要不断的规律的时钟脉冲,而这一功能就由F2812内部的振荡器OSC和基于PLL 的时钟模块来实现。
振荡器OSC:一种能量转换装置,将直流电能转换为具有一定频率的交流电能。
锁相环PLL:锁相环也叫相同步逻辑,用途是在收、发通信双方建立载波同步或位同步。
因为它的工作过程是一个自动频率(相位)调整的闭合环路,所以叫环。
让我们来看一下整体的图:图1 2812芯片内的OSC和PLL模块如上图所示,F2812上有基于PLL的时钟模块,为器件及各种外设提供时钟信号。
锁相环中有4位倍频设置位,以此来提供各种速度的时钟信号。
基于PLL 的时钟模块可以采用两种操作模式:(1)内部振荡器:在PLL未被禁止的情况下,使用外部晶振给2812提供时钟信号,则必须使用X1/XCLKIN引脚和X2引脚,在这两引脚之间连接一个石英晶体,即外部晶振。
(2)外部时钟源:在PLL被禁止的情况下,旁路片内振荡器,由外部时钟源提供时钟信号,这时候讲外部振荡器的信号直接输入到X1/XCLKIN引脚上,此时X2引脚不使用。
外部XPLLDIS引脚可以选择系统的时钟源。
当XPLLDIS为低电平时,系统直接采用时钟或晶振直接作为系统时钟;当XPLLDIS为高电平时,外部时钟经过PLL倍频后,为系统提供时钟。
不同频率的pll,对参考时钟摆幅的要求
不同频率的pll,对参考时钟摆幅的要求
PLL(锁相环)是一种反馈电路,用于将一个电路板上的时钟相位与外部时序信号同步。
PLL的工作原理是将外部信号的相位与压控晶体振荡器(VCXO)产生的时钟信号的相位进行比较,然后调整振荡器时钟信号的相位以匹配参考信号的相位,从而实现两个信号的同相。
在PLL中,参考时钟的摆幅会对PLL的性能产生影响。
理论上,参考时钟的摆幅越大,PLL的跟踪速度和噪声抑制能力越强。
因此,对于不同频率的PLL,对参考时钟摆幅的要求可能会有所不同。
一般来说,为了获得更好的性能,建议选择摆幅较大的参考时钟。
然而,在实际应用中,PLL的性能不仅仅取决于参考时钟的摆幅,还受到其他因素的影响,如环路带宽、滤波器设计等。
因此,对于具体的PLL应用,需要根据实际需求和系统要求进行综合设计和考虑。
如果需要更深入和具体的信息,建议查阅相关的锁相环(PLL)设计和应用资料,或者咨询相关领域的专家。
硬件锁相环电路
硬件锁相环(Phase-Locked Loop,简称PLL)是一种常用的电路设计技术,主要用于实现频率合成、时钟恢复和数据同步等功能。
它由相位比较器、环路滤波器、控制电压源和振荡器等组成。
在硬件锁相环电路中,相位比较器用于比较输入信号与参考信号的相位差,并将差值输出给环路滤波器。
环路滤波器对相位差进行滤波处理,以产生一个控制电压。
控制电压源根据环路滤波器的输出来调节振荡器的频率或相位,使得输入信号与参考信号的相位差最小化。
通过不断调整振荡器的频率或相位,硬件锁相环电路可以将输入信号的频率合成到期望的频率,实现频率合成的功能。
同时,它还可以用于恢复时钟信号的稳定性,对于需要高精度时钟的应用非常有用。
此外,硬件锁相环电路还广泛应用于数据通信系统中的数据同步功能。
通过锁定接收端的本地时钟与发送端的时钟相位,可以确保数据传输的准确性和可靠性。
总结来说,硬件锁相环电路是一种基于相位比较和反馈控制原理的电路设计技术,可以实现频率合成、时钟恢复和数据同步等功能。
它在通信、计算机、测量和控制等领域有着广泛的应用。
STM32时钟配置方法详解
STM32时钟配置方法详解时钟树是STM32微控制器中一系列时钟源和时钟分频器的组成部分。
时钟树包括系统时钟、外设时钟和内核时钟。
系统时钟用于驱动整个微控制器系统的核心,外设时钟用于驱动各种外设,内核时钟用于驱动CPU的运算。
在进行时钟配置之前,首先需要了解系统所需的时钟频率。
在STM32中,系统时钟可以通过多种方式进行配置,例如使用外部晶体、外部时钟、内部RC振荡器或者PLL(锁相环)等方式。
外部晶体是一种常用的时钟源,可以提供高精度的时钟频率。
在使用外部晶体时,首先需要设置PLL的时钟源为外部晶体,并设置PLL输入除频器的分频系数。
然后,再根据系统所需的时钟频率,设置PLL的倍频系数,以得到最终的系统时钟频率。
外部时钟是从外部提供的时钟信号,一般用于测试和调试。
使用外部时钟时,需要设置PLL的时钟源为外部时钟,并设置PLL的倍频系数,以得到所需的系统时钟频率。
内部RC振荡器是一种低成本的时钟源,但是其频率不如外部晶体稳定和精确。
在使用内部RC振荡器时,需要设置PLL的时钟源为内部RC振荡器,并设置PLL的倍频系数,以得到所需的系统时钟频率。
PLL是一种用于产生稳定高频时钟的电路,可以从一个低频时钟源产生一个高频时钟源。
使用PLL时,需要设置其输入时钟源和倍频系数。
系统时钟的分频系数可以通过RCC_CFGR寄存器进行设置。
RCC_CFGR寄存器的各个位域用于配置系统时钟的分频系数,包括分频因子、APB1的分频系数、APB2的分频系数等。
外设时钟是用于驱动外设的时钟,可以由系统时钟分频得到。
外设时钟的分频系数可以通过RCC_CFGR寄存器及各个外设的控制寄存器进行设置。
内核时钟是用于驱动CPU的运算的时钟。
在STM32微控制器中,CPU 时钟可以由系统时钟分频得到,分频系数可以通过RCC_CFGR寄存器和FLASH_ACR寄存器进行设置。
除了上述方法之外,STM32还可以使用时钟配置工具进行时钟配置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PLL锁相环时钟设定
未配置锁相环时(OSCCLK_PLLSEL=0):
总线频率=外部晶振频率(OSCCLK)/2
配置锁相环时(OSCCLK_PLLSEL=1): 系统时钟由锁相环提供,总线频率=倍频后频率(PLLCLK)/2
时钟频率计算方法
Fvco=2*Fosc*(SYNDIN+1)/(REFDIV+1)
Fpll=Fvco/(2*POSTDIV)当POSTDIV=0时,Fpll=Fvco
Fbus=Fpll/2
CRGFLG_LOCK==1时,说明PLLCLK稳定,可输出。
锁相环从设定到稳定需要时间,故期间应加几条空语句。
例程:
void CLK_Init(void) {
CLKSEL=0x00; //选择OSCCLK为系统时钟源16M PLLCTL_PLLON=1; //开启锁相环,锁相环电路允许
//频率设定80M时
SYNR = 0xc0 | 0x09;
REFDV = 0x80 | 0x01;
POSTDIV = 0x00; // PLLCLOCK=2*osc*(1+SYNR)/(1+REFDV)=160MHz; _asm(nop);_asm(nop);
while(!CRGFLG_LOCK); // 时钟频率已稳定,锁相环频率锁定CLKSEL_PLLSEL=1; //使能锁相环时钟
}
PWM模块
PWME:PWM允许寄存器,置1时允许输出。
PWMPOL:极性寄存器。
置1时首先输出高电平。
2、3、6、7、置1时clock SB 作为时钟源,置0时clock B作为时钟源
PWMCAE:居中对齐允许寄存器,只有当通道输出禁止时才能设置此寄存器置1时为居中对齐,置0时左对齐
PWMSCLA:比例因子寄存器A;用于提供clock SA的比例因子
Clock SA的时钟频率= clock A/(2*PWMSCLA)当PWMSCLA为0时比例因子默认为256. CLOCKSB 计算方法类似,寄存器为PWMSCLB。
PWMCNTx:通道计数寄存器,一般设置值为0x00;
PWMPERx:周期寄存器;
左对齐时周期计算方法:PWMxPeriod=指定时钟周期乘以PWMPERx的值居中对齐时=指定时钟周期乘PWMPERx的值再乘2;
PWMDTYx:占空比寄存器。
占空比计算方法:极性为1时:Duty Cycle=PWMDTYx/PWMPERx*100%
极性为0时(PWMPERx-PWMDTYx)/PWMPERx
例程
void PWM_128init(void)
{
PWMPRCLK=0x00; //ClockA and ClockB等于总线时钟80M
PWMCLK=0xc2; //通道7、1选择SB、SA时钟源,通道5,3选择A,B时钟源PWMSCLB=0x14; //SB时钟源为40分频为2M
PWMSCLA=0x14; //SA时钟源2M;
PWMCTL=0xf0; //级联67 级联45 级联23 级联01
PWMCAE=0x00; //pwm左对齐输出
PWMCNT01=0;
PWMCNT23=0;
PWMCNT45=0;
PWMCNT67=0;
PWMPOL=0XFF; //初始输出高电平
PWMPER67 = 40000; //67通道输出50HZ的频率2M/40000
PWMPER45 = 8000; //45通道输出10k频率80M/8000
PWMPER23 = 8000; //23通道输出10k频率80M/8000
PWMPER01=40000;
PWMDTY67 = 2800; //67通道初始PWM高电平时间为1.5ms
PWMDTY45 = 2000; //45 通道初始占空比0%
PWMDTY23 =2000; //23通道初始占空比0
PWMDTY01=3000;
PWME=0XAA; //7,5,3,1通道使能
}
SPI模块
五、SPIDR 数据寄存器
SPI数据寄存器是SPI数据的输入和输出寄存器,写该寄存器会允许一个字节进入队列并发送。
如果SPI被配置成主机,当前面的数据发送完成,排在队列的数据会立即被发送。
SPISR寄存器中的发送空标志SPTEF表明SPI数据寄存器准备接收新的数据。
当SPIF=1时SPIDR中接收的数据是有效的。
SPI的编程方法:
1、初始化:设置控制寄存器SPICR1、SPICR2,及波特率寄存器SPIBR。
在此设
定SPI的工作方式,时钟极性,时钟相位,及各种中断允许等。
2、发送与接收数据的编写:作为主机方,只要将数据写入SPIDR,然后检查SPISR
的SPTEF位,若为1,则表示数据已经发送出去。
若同时接收对方送来的数据,则接着检查SPISR的SPIF位,若为1,则表示要接的数据已经进入数据寄存器,可以取出了。
SCI模块
SCI模块复用PS口的4个引脚,(0~3)作为RXD、TXD、RXD1、TXD1. SCI波特率寄存器(SCIBDH和SCIBDL)
SCI波特率=SCI模块时钟/(16*寄存器的值)。