不知为何图片丢失,可对照英文版来看
Translator: Miss. BikaQ
All rights reserved.
CLOCK & POWER MANAGEMENT S 3C 44B0X RISC MICROPROCESSOR
5时钟&电源管理
5.1 时钟发生器(Clock Generator)
5.1.1 S 3C 44B0X 片上的时钟发生器(内嵌PLL)为CPU及外设提供时钟信号。如图:
5.1.2功能介绍
时钟的产生
如图5-1 ,主时钟源有两个:一是XTAL0,EXTAL0连接外部晶振时钟。(OSC是需要连接到外部晶真的晶振放大器。)二是EXTCLK连接一个外部时钟。PLL的功能是以低频的晶振输出作为输入,然后产生S 3C 44B0X需要的高频时钟。时钟发生器的逻辑电路可以在重启之后,或是从STOP MODE退出之后产生稳定的时钟信号。
时钟源的选择
如表5-1 S 3C 44B0X时钟源的选择由处理器的两个引脚OM[3:2]控制。OM[3:2]的状态是在nRESET信号的上升沿定的。
OM[3:2]控制多路开关MUX来选择Fin的提供者。
时钟源的选择一般是厂家使用处理器时确定的,所以不需要我们来设定。
NOTE::虽然 PLL在重启之后就开始启动了,但是它的输出一直到对PLLCON寄存器设置之后才能作为Fout。.在对寄存器进行设置之前,Fin将直接作为Fout.。即使用户想使用PLLCON寄存器中的默认值,也需要吧它重新写入才行。
PLL (PHASE-LOCKED-LOOP)
时钟发生器中的PLL是一个电路,它可以产生与输入信号频相同步的输出信号,它包括以下基本模块(如图5-2):
VCO (Voltage controlled oscillator),:产生与所需的直流电压想符合的频率。
Divider P:产生Fref=Fin/P
Divider M:产生Fvco=VCO输出/M
Divider S:产生Fpllo=VCO输出/S(Fpllo就是PLL模块的输出频率)
PFD (Phase Difference Detector) :监视Fref,Fvco,当他们产生相位差时发出一个控制信号。
Charge Pump (PUMP) :把PFD产生的控制信号转换成比例相应的电压,并使其通过外部滤波器(Loop Filter)来驱动VCO
Loop Filter :为避免VCO超载,这个低通滤波器把由控制信号产生的高频部分过滤掉。
Loop Filter 中推荐使用电容大小为700Pf(如图5-2)。
PLL输入Fin与输出Fpllo之间的关系:
m = M (赋给 divider M的值)+ 8, p = P(赋给 divider P的值) + 2
PLL产生稳定输出原理:
当Fref,Fvco有相位差时,PFD产生控制信号发给PUMP,PUMP把PFD产生的控制信号转换成比例相应的电压,并使其通过外部滤波器(Loop Filter)来驱动VCO,引起VCO中晶振频率线性的增长或是降低得到了动态变化平均电压。
当Fref,Fvco频相一致时,PFD不再产生控制信号发给PUMP,从而PUMP可以输出稳定的电压提供给外部滤波器(Loop Filter),Loop Filter的稳定输出不再驱动VCO改变频率。于是,VCO的频率保持恒定,PLL就可以为作为系统时钟了。
PLL频率设置方法(Normal Operation Mode 下):
1.根据Fin与Fpllo(即需要的时钟输出Fout)计算MDIV, PDIV,SDIV值
公式如下:
m = (MDIV + 8), p = (PDIV + 2), s = SDIV
示例:
若 Fin=14.318Mhz , Fout=60Mhz
计算得:MDIV=59, PDIV=6 and SDIV=1
(可以用 SAMSUNG 公司提供的PLLSET.EXE 来计算. )
计算PLL 值需满足的限制:
1. Fpllo 的范围( 20Mhz ~ 66Mhz.)
2. Fpllo * 必须小于170 MHz.
3. S 需尽量大.
4. 推荐值(Fin / p)≥ 1Mhz . 同时需满足, (Fin / p) < 2Mhz
2.按照计算所得MDIV, PDIV,SDIV值,设置寄存器PLLCON
PLL&Clock Generator的正常状态:
时钟控制逻辑(CLOCK CONTROL LOGIC)
它的作用是决定 Fout是来自 PLL(Fpllo) 时钟还是直接来自 OSC 时钟(Fin). 当为PLL设置一个新的频率值的时候, clock control logic 使 FOUT 在 PLL 锁定时间内失效直到 PLL 产生稳定的输出时才使FOUT有效。除了此种情况外,clock control logic 在重启或者是从掉电模式唤醒的时候也会被激活。
PLL 封锁时间(PLL Lock Time )
为了使PLL输出是稳定的, lock time 应该大于 208us. 在重启之后,或者是从STOP 和 SL_IDLE 模式唤醒之后, lock-time 就会根据lock time count 寄存器的配置自动的插入。自动插入的 lock time
计算公式:
t_lock( PLL lock time by 硬件逻辑) = (1/ Fin) x n, (n = LTIMECNT value)
加电重启(Power-On Reset ):
图 5-4 演示了加电重启后的时序关系。家电后,在若干ms(millionsecond)内,晶振开始启动,当OSC时钟输出稳定之后, nRESET 发出信号,然后 PLL 根据默认配置开始启动。但是 PLL在刚加电时是不稳定的,所以此时 Fout 仍然直接使用Fin而不是 Fpllo,直到用软件对PLLCON重新配置之后,产生稳定输出才能使Fout使用Fpllo。即使用户想在重启后使用PLLCON寄存器中的默认值,也需要用软件把它重新写入寄存器才行
在lock time.之后Fout立即被配置为PLL 的输出(Fpllo) ,而 PLL 只有在用软件对PLL配置一个新的频率的时候才会开始它的上锁操作序列即lock time.才会开始。
Normal Operation Mode 下改变PLL设置
当S 3C 44B0X在 Normal mode操作时,如果用户想通过改写PMS值来改变频率,PLL lock time将会自动插入。在lock time中,将停止为S 3C 440X提供时钟。时间图如下: