打印
[资料分享与下载]

kinetis时钟模块MCG详解

[复制链接]
楼主: niuyaliang
手机看帖
扫描二维码
随时随地手机跟帖
21
niuyaliang|  楼主 | 2015-2-27 21:37 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
RANGE:晶振频率范围选择,用于为使用的外部晶振选择频率范围,具体如表1.2所示

使用特权

评论回复
22
niuyaliang|  楼主 | 2015-2-27 21:39 | 只看该作者
RANGE:晶振频率范围选择,用于为使用的外部晶振选择频率范围,具体如表1.2所示

使用特权

评论回复
23
niuyaliang|  楼主 | 2015-2-27 21:40 | 只看该作者
注意:一般情况下,如果使用32K晶振,则可选择RANGE=00,如晶振频率为3~32MHz,则可选择RANGE=01,如果使用更高频率的晶振,则可选择RANGE=1X。

使用特权

评论回复
24
niuyaliang|  楼主 | 2015-2-27 21:42 | 只看该作者
HGO:高增益振荡器选择
HGO=0:设置晶振为低功耗操作;
HGO=1:设置晶振为高增益操作。
EREFS:外部参考选择。来自外部的时钟信号可以是外部直接输入的时钟脉冲,或来自晶体振荡器,可通过EREFS选择。
EREFS=0:外部参考时钟;
EREFS=1:外部振荡器。

使用特权

评论回复
25
niuyaliang|  楼主 | 2015-2-27 21:42 | 只看该作者
注意:一般情况下,我们使用都是外部晶振,该位置1即可。
LP:低功耗选择,用于选择在bypass等模式下,FLL和PLL是否工作,主要出于省电考虑,超频过程中,该位可暂不考虑,默认即可。
IRCS:内部参考时钟选择。如果我们选择把芯片自带的内部时钟作为MCGOUTCLK输出,即设置MCG_C1寄存器中的CLKS=01,则有两个选择,一个是32K的慢速时钟,一个是2M的快速时钟,由IRCS选择。在PLL超频过程中,该位可忽略。
IRCS=0:选择慢速内部参考时钟;
IRCS=1:选择快速内部参考时钟。

使用特权

评论回复
26
niuyaliang|  楼主 | 2015-2-27 21:43 | 只看该作者
3.  MCG控制寄存器5(MCG_C5)

使用特权

评论回复
27
niuyaliang|  楼主 | 2015-2-27 21:45 | 只看该作者
PLLCLKEN:PLL时钟使能。MCGPLLCLK也是MCG模块输出的一个时钟选项。如果要使能这个时钟输出,则设置PLLCKEN=1即可。PLLCLKEN和我们要超频输出的MCGOUTCLK无关,在PLL超频过程中可忽略。如果使用MCGPLLCLK的话,需要注意,置位PLLCLKEN之前,PRDIV需要设置合适的分频系数以产生2~4M的PLL参考时钟,置位PLLCLKEN将使能外部振荡器。每次置位PLLCLKEN使能PLL时钟,并且外部振荡器作为参考时钟,都需要检查OSCINIT位。

使用特权

评论回复
28
niuyaliang|  楼主 | 2015-2-27 21:46 | 只看该作者
PLLSTEN:设置stop模式下,PLL是否使能。PLL超频过程中,该位可忽略。

使用特权

评论回复
29
niuyaliang|  楼主 | 2015-2-27 21:46 | 只看该作者
PRDIV:PLL外部参考时钟分频。我们选择外部晶振作为参考时钟输入到PLL时,需要先分频到2~4MHz的范围内才可以由PLL倍频后输出。PRDIV就是设置对外部时钟的分频系数。

使用特权

评论回复
30
niuyaliang|  楼主 | 2015-2-27 21:47 | 只看该作者
分频系数=PRDIV+1,注意PRDIV<=24。
注意:通过设置PRDIV,结果频率应在2M~4M范围内,当PLL使能,即将PLLCLKEN置1后,在锁相环PLL未锁定频率之前,不可改变PRDIV的值。

使用特权

评论回复
31
niuyaliang|  楼主 | 2015-2-27 21:48 | 只看该作者
4. MCG控制寄存器6(MCG_C6)

使用特权

评论回复
32
niuyaliang|  楼主 | 2015-2-27 21:48 | 只看该作者
LOLIE:当时钟失去锁定时,是否发生中断请求。
LOLIE=0:禁止中断请求;
LOLIE=1:允许中断请求。
PLLS:PLL选择,选择PLL还是FLL作为MCG的时钟源。当CLKS[1:0]=00时,我们可以选择MCGOUTCLK来自PLL或者FLL。到底是PLL还是FLL则由PLLS指定。
PLLS=0:选择FLL;                                                                                                                              
PLLS=1:选择PLL,设置PLLS之前,需要设置合适的PRDIV以产生2~4M的参考时钟。
CME:时钟监控使能,设置当失去外部时钟时,是否产生中断。
VDIV:PLL压控振荡器倍频系数,VDIV决定参考时钟的倍数。当我们最终选择PLL倍频后输出到MCGOUTCLK时,需要设置VDIV得到我们需要的时钟频率。
倍数=VDIV+24,且VDIV<=31。

使用特权

评论回复
33
niuyaliang|  楼主 | 2015-2-27 21:49 | 只看该作者
注意:PLL最大55倍频,参考时钟最大4MHz,也就是PLL超频最高到220MHz。

使用特权

评论回复
34
niuyaliang|  楼主 | 2015-2-27 21:49 | 只看该作者
5. MCG状态寄存器(MCG_S)
这个寄存器中包含反映MCG状态的标志位,供程序查询。在MCG的模式转换过程中,我们必须查询该寄存器中的某些标志位以确保转换完成。

使用特权

评论回复
35
niuyaliang|  楼主 | 2015-2-27 21:50 | 只看该作者

使用特权

评论回复
36
niuyaliang|  楼主 | 2015-2-27 21:51 | 只看该作者
LOLS:该位反映锁相环的锁定状态,失锁时置          1,写1清除,该位置1时,由MCG_CR6中的LOLIE决定是否产生中断。
LOCK:该位置1表示锁相环已经锁定。在锁定过程中,MGC的PLL时钟被禁止输出,直到LOCK置位。LOCK置位后,任何改变PRDIV或VDIV的操作都会清除LOCK位直到再次锁定频率。
PLLST:该位指示,PLLS的时钟源是来自FLL时钟还是PLL时钟。当我们改变PLLS在PLL和FLL时钟之间切换时,时钟输出的变化需要查询该位以确保切换完成。

使用特权

评论回复
37
niuyaliang|  楼主 | 2015-2-27 21:51 | 只看该作者
PLLST=0:FLL时钟;
PLLST=1:PLL时钟。
IREFST:FLL内部参考时钟状态。当我们改变IREF,对FLL的参考时钟的来源切换时,需要查询该位以确保切换完成才可进行下一步。
IREFST=0:FLL参考时钟来自外部;
IREFST=1:FLL参考时钟来自内部。
CLKST:指示当前的时钟模式。当我们改变CLKS,改变MCGOUTCLK的时钟来源时,需要查询该位以确保切换完成才可进行下一步。
CLKST=00:选择FLL输出;
CLKST=01:选择内部参考时钟;
CLKST=10:选择外部参考时钟;
CLKST=11:选择PLL输出。

使用特权

评论回复
38
niuyaliang|  楼主 | 2015-2-27 21:51 | 只看该作者
OSCINT:晶振初始化状态,该位置1表示晶振完成初始化。
IRCST:内部参考时钟状态。如改变IRCS,则须查询该位,该位和PLL超频无关。
IRCST=0:选择慢速内部时钟,32K;
IRCST=1:选择快速内部时钟,2M。
MCG模块和PLL超频有关的寄存器都已经列出来,还有些寄存器和PLL超频无关,不做详细介绍,如想进一步了解可参考数据手册,K10P100M100SF2RM.pdf第24章。

使用特权

评论回复
39
niuyaliang|  楼主 | 2015-2-27 21:51 | 只看该作者
模式转换
如图1.3所示,我们必须通过设置相关的寄存器,实现FEI到FBE的转换,再由FBE转换到PBE,最后再转换到PEE。

使用特权

评论回复
40
niuyaliang|  楼主 | 2015-2-27 21:52 | 只看该作者
1. FEI转换到FBE
FEI模式下,时钟的产生如图1.11所示。FEI是系统复位后MCG默认的工作模式,输出的时钟MCGOUTCLK来自FLL。FLL的参考时钟来自内部32K慢速时钟,FLL倍频后大约20MHz。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则