第十四届智能车培训 PLL锁相环
什么是锁相环?
PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时脉讯号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率,而在需要高频应用时,由相应的器件VCO,实现转成高频,但并不稳定,故利用锁相环路就可以实现稳定且高频的时脉冲讯号。
锁相环主要作用:
单片机使用锁相环(PLL)功能能够获得更高的总线频率,这对于需要提高单片机运行速度的场合非常必要。
锁相环相关寄存器简介:
1、CRG时钟合成寄存器(SYNR)

该寄存器低6位有效,有效值0~63
2、时钟分频寄存器(REFDV)

该寄存器有效位为寄存器的低4位,有效值为0~15
3、时钟选择寄存器(CLKSEL)

PLLSEL置1:Bus Clock = PLLCLK / 2 置0:Bus Clock = OSCCLK / 2)
设置锁相环计算方法
配置锁相环的主要目的是为了得到新的总线时钟,其配置主要依据下面的三个公式:

Fosc系统总线时钟频率
Fpll锁相环时钟频率
Fbus总线时钟频率
配置流程:
1. CLKSEL=0X00; // 在CLKSEL最高位为0时才能设置其他寄存器
2. 设置相关参数 SYNR ( 时钟合成寄存器 ) REFDY ( 时钟分频寄存器 )
3. 等待 PLL 稳定 该部分用到的寄存器 CRGFLG_LOCK 当 CRGFLG_LOCK=1 表示时钟频率已经稳定
4、CLKSEL=0x80 ;//使用PLL时钟
例程代码:
void PLL_Init(void)
{
CLKSEL=; //时钟选择寄存器的最高位为0 Bus Clock(总线时钟)= OSCCLK / 2)
// 为1 Bus Clock(总线时钟)= PLLCLK / 2)
// 在CLKSEL最高位为0时才能设置其他寄存器 SYNR=0x44;//时钟合成寄存器 0100 0100 因低六位有效所以最大为63
REFDV=0x81;//时钟分频寄存器 1000 0001因低四位有效所以最大为15 外部晶振fosc=8M,BUS clock=20M
_asm(nop); //空操作
_asm(nop);
while(!CRGFLG_LOCK==); //当CRGFLG_LOCK!=1时
//CRGFLG_LOCK=1 表示时钟频率已经稳定 CLKSEL=0X80; //时钟选择寄存器的最高位 // 在CLKSEL最高位设置为1其他寄存器不允许设置
}
void PLL(void)
{
SYNR=0x01; //时钟主频:PLL clock = 2*OSC CLOCK*(1+SYNR)/(1+REFDV)
REFDV=0x00; // PLL clock = 32MHz = 2* 8 * 2 / 1 while(!(CRGFLG_LOCK==)); //等待晶振稳定
CLKSEL_PLLSEL=; //对时钟主频/2得到 //总线时钟:BUS CLOCK = PLL CLOCK / 2
//BUS CLOCK =16MHz = 32 /2
}
//ECT模块的输出比较功能设置
//通道0
//根据元件的工作频率选择单片机合适的主频率
//system clock 8MHZ(系统时钟)
void PLL(void) //设定总线频率 (超频)
{
CLKSEL=0x00; //初始化PLL前先使用外部晶振(晶振时钟)
SYNR=0x01; //时钟主频:PLL clock = 2*OSC CLOCK*(1+SYNR)/(1+REFDV)
REFDV=0x00; //got 32 MHZ = 2*8*2/1
while(!(CRGFLG_LOCK==)); //等待晶振稳定(时钟校正同步)
CLKSEL_PLLSEL=;//(CLKSEL=0x80;) //BUS CLOCK 16 MHZ = PLL CLOCK / 2 (选定锁相环时钟)(PLLSEL置1:Bus Clock = PLLCLK / 2)
}
第十四届智能车培训 PLL锁相环的更多相关文章
- 第十四届智能车队员培训 I/O的使用 数据方向寄存器和数据寄存器的配置 MC9S12D64处理器
I/O的使用 数据方向寄存器和数据寄存器的配置 I/O输入输出的使用: 数据方向寄存器与数据寄存器 寄存器的概念: 寄存器,是集成电路中非常重要的一种存储单元,通常由触发器组成.在集成电路设计中,寄存 ...
- HDU 6467 简单数学题 【递推公式 && O(1)优化乘法】(广东工业大学第十四届程序设计竞赛)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6467 简单数学题 Time Limit: 4000/2000 MS (Java/Others) M ...
- HDU 6464 免费送气球 【权值线段树】(广东工业大学第十四届程序设计竞赛)
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6464 免费送气球 Time Limit: 2000/1000 MS (Java/Others) M ...
- HDU 6470 Count 【矩阵快速幂】(广东工业大学第十四届程序设计竞赛 )
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6470 Count Time Limit: 6000/3000 MS (Java/Others) ...
- HDU 6467.简单数学题-数学题 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
简单数学题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- HDU 6464.免费送气球-动态开点-权值线段树(序列中第first小至第second小的数值之和)(感觉就是只有一个状态的主席树) (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
免费送气球 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submi ...
- HDU 6463.超级无敌简单题-卡边界的暴力 (“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛)
超级无敌简单题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- 第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题
第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题 1.原题呈现 2.试题答案 3.题目解析 因博客园无法打出公式等,所以给你们几个小编推荐的链接去看看,在这里小编深感抱歉! https ...
- EOS基础全家桶(十四)智能合约进阶
简介 通过上一期的学习,大家应该能写一些简单的功能了,但是在实际生产中的功能需求往往要复杂很多,今天我就继续和大家分享下智能合约中的一些高级用法和功能. 使用docker编译 如果你需要使用不同版本的 ...
随机推荐
- com.mysql.jdbc.Driver 和 com.mysql.cj.jdbc.Driver
com.mysql.jdbc.Driver 是 mysql-connector-java 5中的,com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的 ...
- spark之java程序开发
spark之java程序开发 1.Spark中的Java开发的缘由: Spark自身是使用Scala程序开发的,Scala语言是同时具备函数式编程和指令式编程的一种混血语言,而Spark源码是基于Sc ...
- 南大算法设计与分析课程复习笔记(3)L3 - Recursion
一.递归方程 按照分治的思想,可以将一个递归的复杂度写成递归方程 一.解递归方程--猜然后证明 该方法又称为代入法,步骤如下: 1.猜解的形式 2.数学归纳法证明正确 例子: 我们假设有如下递归式: ...
- 隐藏马尔科夫模型HMM
概率图模型 HMM 先从一个具体的例子入手,看看我们要解决的实际问题.例子引自wiki.https://en.wikipedia.org/wiki/Hidden_Markov_model Consid ...
- zend studio快捷键
某些快捷键会失效,多尝试就好.快捷键就是一种减轻工作量的方式,或者说展示码农码代码的熟练度,重要的还在于对一个问题的看法和角度,说的具体些就是算法和数据结构,不看会后悔,不学设计模式也会吃亏. 应用场 ...
- IdentityServer4客户端JWT解密实现(基于.net4.0)
情景:公司项目基于.net4.0,web客户端实现单点登录需要自己解密id_token,对于jwt解密,.net提供了IdentityModel类库,但是4.0中该类库不可用,所以自己实现了解密方法. ...
- Oracle高效分页查询(转)
page --没有order by的查询 -- 嵌套子查询,两次筛选(推荐使用) --SELECT * -- FROM (SELECT ROWNUM AS rowno, t.* -- FROM DON ...
- Bean实例化的三种方式
1. 构造器实例化 spring容器通过bean对应的默认的构造函数来实例化bean. 2. 静态工厂方式实例化 首先创建一个静态工厂类,在类中定义一个静态方法创建实例. 静态工厂类及静态方法: pu ...
- What does operator “dot” (.) mean?
Question: Given the code : A = [1 2 3; 3 2 1] B = A.^2 The output : B = 1 4 9 9 4 1 But if I do this ...
- a dive in react lifecycle
背景:我在react文档里找生命周期的图,居然没有,不敢相信我是在推特上找到的... 正文 react v16.3 新生命周期: static getDerivedStateFromProps get ...