转:PLL 锁相环
原地址:http://fangjian0518.blog.163.com/blog/static/559196562011210103455430/
PLL的作用?
答:LPC2000系列ARM内部都在PLL电路,将振荡器产生的时钟频率Fosc通过PLL升频,就可以获取更高的系统时钟(Fcclk),并且它
为整个系统及所有部件提供时钟。
PLL的工作原理?
答:1.由Fosc振荡器输入一个时钟信号:
2.经过相位频率检测,检测两路输入信号的相位频率,并根据差值,输出不同大小的电流信号;
3.然后输入到一个流控振荡器CCO中,它由前者输入电流大小来控制其振荡频率;
4.CCO产生的振荡信号,在由一个2P分频,它通过调整P值,使CCO振荡在规定频率范围内;
5.然后经过一个PLL连接的开关,在PLL锁定前,系统使用Fosc时钟;
6.PLL开关还有一个反馈信号,经M分频,调整M值,实现Fosc到Fcclk的倍频;
PLL的几个极限参数?
答:1.Fosc的时钟频率大约在10~250MHZ;
2.CCO的频率大约在156~320MHZ;
3.经过二分频和M分频后所得到的频率为10~60MHZ;
二分频的作用?
答:1.保证CCO工作在正常的频率范围内,可以设置为2、4、8或16分频;
2.保证PLL输出的波形为50%的占空比;
PLL相关的寄存器描述?
答: 名称 描述 地址 复位
PLLCON PLL控制寄存器 0xE01FC080 0
PLLCFG PLL配置寄存器 0XE01FC084 0
PLLSTAT PLL状态寄存器 0XE01FC088 0
PLLFEED PLL馈送寄存器 0XE01FC08C N/A
PLLCON寄存器的功能?
答: 位 位名称 功能 复位
0 PLLE PLL使能 0
1 PLLC PLL连接 0
7:2 --- 无效 N/A
PLLCFG寄存器的功能?
答: 位 位名称 功能 复位
4:0 MSEL[4:0] PLL倍频器值 0
6:5 PSEL[1:0] PLL分频器值 0
7 ------ 无效 N/A
PLLSTAT寄存器的功能:
答: 位 位名称 功能 复位
4:0 MSEL[4:0] 读出PLL倍频器的值 0
6:5 PSEL[1:0] 读出PLL分频器的值 0
7 ----- 无效 N/A
8 PLLE 读出PLL的使能位 0
9 PLLC 读出PLL的连接位 0
10 PLOCK 反映PLL的锁定状态 0
15:11 ------- 无效 N/A
PLL的模式?
答: PLLC PLLE 功能
0 0 PLL被关闭并断开连接,系统使用未更改的时钟输入
0 1 PLL被激活但是尚未连接,PLL可在PLOCK置位后连接
1 0 与00组合相同,这样消除了PLL已经连接但没有使能的可能性
1 1 PLL已使能,并连接到处理器作为系统时钟源
PLLFEED的功能?
答: 位 名称 功能
7:0 PLLFEED PLL馈送序列必须写入该寄存器才能使能PLL配置和控制寄存器的更改生效
PLL频率的计算?
答: 参数 说明
Fosc 晶体振荡器的输出频率
Fcco PLL电流控制寄存器的输出频率
Fcclk PLL最终输出频率
M PLLCFG寄存器中MSEL位的倍频器的值
P PLLCFG寄存器中PSEL位的分频器的值
工式:
Fosc = Fcco / (2 * P * M) ====> Fcco = Fosc * ( 2 * P * M )
Fcclk = Fcc0 / ( 2 * P )======>Fcco = Fcclk * ( 2 * P )
PLL的输出频率,即PLL激活并连接的频率时:
Fcclk = M * Fosc 或 Fcclk = Fcco/(2*P)
CCO输出频率为:
Fcco = Fcclk*2*P 或 Fcco = Fosc * M * 2 * P
程序设计步聚:
1.选择处理器的时钟频率;
2.选择振荡器的频率;
3.计算M值以配置MSEL位;
4.选择P值以配置PSEL位;
PLL倍增器值 PLL分频器值
MSEL位 M值 PSEL位 P
PLLCFG[4:0] PLLCFG[6:5]
00000 1 00 1
00001 2 01 2
00010 3 10 3
... ... 11 4
11111 32
PLL的设计程序:
答:略!
PS:边看书边总结,不知道有没有什么错误和遗漏的地方,如有请帮忙指出,以便于和各位网友共同的提高,谢谢!