打印
[资料分享与下载]

kinetis时钟模块MCG详解

[复制链接]
3915|52
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、MCG模块简介

         MCG成为多用途时钟信号发生器,该模块为MCU和芯片内部各个模块提供时钟信号。MCG模块通过对输入的参考时钟进行分频和倍频处理,可以输出各种频率的时钟信号,并达到超频运行的目的。输入的参考时钟可以来自内部也可以来自外部时钟或外部晶振。输入的参考时钟一般经过分频后进入FLL(锁频环)或PLL(锁相环)进行倍频处理,当然也可以不通过FLL或PLL,而直接输出给各个模块。一般情况下,我们会选择外部晶振的参考时钟,分频后由PLL倍频的方法来达到超频运行的目的。


相关帖子

沙发
niuyaliang|  楼主 | 2015-2-27 21:14 | 只看该作者
   MCG模块框图如图1.1所示。

使用特权

评论回复
板凳
niuyaliang|  楼主 | 2015-2-27 21:16 | 只看该作者
MCG的核心是一个FLL(锁频环)和一个PLL(锁相环)。FLL和PLL都可以对输入的参考时钟倍频并锁定后输出,输出的时钟在SIM模块的控制下提供给CPU和各个模块。锁频环FLL的核心是一个DCO(数字控制振荡器),锁相环PLL的核心是一个VCO(电压控制振荡器)。

使用特权

评论回复
地板
niuyaliang|  楼主 | 2015-2-27 21:17 | 只看该作者
注意:MCG模块可输出多个时钟,比如MCGFFCLK、MCGPLLCLK、MCGOUTCLK等,详见图1.1。这些时钟可以为其它模块提供更多的时钟选择。在这些时钟中,最主要的是MCGOUTCLK。这个时钟是核心时钟、总线时钟、FLASH时钟的时钟来源。我们要实现PLL超频最终得到的也是MCGOUTCLK。

使用特权

评论回复
5
niuyaliang|  楼主 | 2015-2-27 21:19 | 只看该作者
注意:MCG模块可输出多个时钟,比如MCGFFCLK、MCGPLLCLK、MCGOUTCLK等,详见图1.1。这些时钟可以为其它模块提供更多的时钟选择。在这些时钟中,最主要的是MCGOUTCLK。这个时钟是核心时钟、总线时钟、FLASH时钟的时钟来源。我们要实现PLL超频最终得到的也是MCGOUTCLK。

使用特权

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

使用特权

评论回复
7
niuyaliang|  楼主 | 2015-2-27 21:24 | 只看该作者
  不同的参考时钟,以及不同的对参考时钟的处理方式的组合,使得MCG模块有9种不同的工作模式。9种模式及相互之间的转换如图1.3所示。

使用特权

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

使用特权

评论回复
9
niuyaliang|  楼主 | 2015-2-27 21:25 | 只看该作者
这9种模式我们未必都用到,一般情况下,我们都会使用PEE模式,PEE模式是选择外部晶振经过PLL倍频后输出时钟,可以达到较高的时钟频率。而上电复位后,MCG工作在FEI模式下。我们必须通过设置相关的寄存器,实现FEI到FBE的转换,再由FBE转换到PBE,最后再转换到PEE。下面我们就介绍一下我们用到的几种模式及在转换过程中用到的寄存器。

使用特权

评论回复
10
niuyaliang|  楼主 | 2015-2-27 21:26 | 只看该作者
二、相关寄存器
1. MCG控制寄存器1(MCG_C1)

使用特权

评论回复
11
niuyaliang|  楼主 | 2015-2-27 21:29 | 只看该作者
CLKS:时钟源选择。该位用于选择MCG的输出时钟MCGOUTCLK从何而来。在MCG的模式转换过程中,每一步都牵涉到CLKS的设置。注意,每次改变CLKS,输出的时钟并不是马上发生变化,而是有一个过程,必需查询相关的标志位以确保转换完成才能进行下一步设置,需查询的相关标志位在MCG_S寄存器中,有关该寄存器的内容稍后介绍。

使用特权

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

使用特权

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

使用特权

评论回复
14
niuyaliang|  楼主 | 2015-2-27 21:31 | 只看该作者
FRDIV:锁频环FLL外部参考分频。当FLL的输入参考时钟来自外部晶振时,可通过设置FRDIV对这个来自晶振的参考时钟分频。分频后的时钟可以提供给FLL再倍频,并且这个时钟也可以提供给MCGFFCLK输出。对于有些模块,比如FTM,MCGFFCLK也是可供选择的一个时钟选项。FRDIV的分频系数和外部晶振的频率范围有关,频率范围在MCG_C2寄存器中的RANGE设置。

使用特权

评论回复
15
niuyaliang|  楼主 | 2015-2-27 21:32 | 只看该作者
RANGE=0,分频比=2^FRDIV(FRDIV<=7),如果外部晶振RANGE!=0,则分频比=2^(FRDIV+5)。
注意:分频后提供给FLL倍频的参考时钟不得超过32K。

使用特权

评论回复
16
niuyaliang|  楼主 | 2015-2-27 21:32 | 只看该作者
IREFS:FLL参考时钟源选择。FLL对输入的参考时钟倍频,而这个参考时钟可以来自芯片自带的内部慢速参考时钟,速率为32k,也可以来自外部晶振经由FRDIV设置的分频比分频后的时钟。选择哪一个输入到FLL由IREFS设置。

使用特权

评论回复
17
niuyaliang|  楼主 | 2015-2-27 21:32 | 只看该作者
IREFS=0:选择外部时钟;
IREFS=1: 选择内部慢速参考时钟源。
注意,上电复位时,IREFS默认为1,即FLL对32K内部慢速时钟倍频后输出。

使用特权

评论回复
18
niuyaliang|  楼主 | 2015-2-27 21:33 | 只看该作者
IRCLKEN、IREFSTEN:前面提到,MCG模块有多个时钟输出,其中一个就是MCGIRCLK,这个时钟来自于芯片内部自带的参考时钟,这个时钟也可以提供给某些模块作为时钟选项。IRCLKEN和IREFSTEN就是和这个时钟有关。如图1.6所示。如需要这个时钟,可设置IRCLKEN=1,如希望在停止模式下,该时钟也可以使用,则可设置IREFSTEN=1。在超频过程中,这两位可暂时忽略。

使用特权

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

使用特权

评论回复
20
niuyaliang|  楼主 | 2015-2-27 21:36 | 只看该作者
2. MCG控制寄存器2(MCG_C2)

使用特权

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

本版积分规则

212

主题

2427

帖子

7

粉丝