"); //-->
LPC1114系统时钟原理(作者:下家山(请尊重原创,转载请注明) http://www.xiajiashan.com )
一:复杂与灵活从51过渡到Cortex-M0/3的人,觉得最大的变化也许是时钟系统!而且,往往在心底里面抱怨:为什么把一个时钟搞得这么复杂!有此怨言之人,往往还没有领悟到Cortex的真谛。
我举个日常的例子!数码相机大家都用过,就三个按钮,一个电源开/关,一个快门开关,一个旋钮(选择录像,拍照,场景等)。大家都很喜欢,因为很方便,所以以前叫傻瓜相机,但卖数码相机的人为了给用户面子,后来并不叫傻瓜相机。但是,数码相机对于专业人士来说没任何用途,因为他给使用者的选择太少,就几个按钮,如果要焦距微调,曝光,白平衡,增益调节,无法实现!
这里,cortex把一个时钟搞的这么复杂是为了给用户更自由方便的控制。Cortex可以让用户控制到每一个模块的时钟。而且,复位状态大部分模块时钟是关闭的,当你要用到那个模块时再打开。所有这些目的,是为了”低功耗”。
二:逻辑框图更能说明问题很多初学者很反感cortex datasheet里面时钟功能框图,而且很不愿意去看它(主要是看不懂)。但是,有经验的工程师,其实最先看的是各种图,他们没有那么多时间去看详细的文字描述。
下面,我们就从LPC1114时钟系统框图入手!
我们看“1”部分,这部分是主时钟,有四根线进来。这四根线分别是:
IRC振荡器时钟,看门狗振荡器时钟,PLL前时钟,PLL后时钟。
(IRC是什么,PLL是什么)
好,这又要涉及到“2”部分图,在2图里面,产生了两个时钟,一个sys_pllclk_in,和sys_pllclk_out。
sys_pllclk_in:系统PLL输入时钟,即提供给PLL的输入时钟。这提供给PLL的输入时钟来源有三种:即
IRC,看门狗,系统振荡器。
呵呵,什么是系统振荡器???
IRC就是内部振荡器,就是集成在芯片里面的一个振荡器。
PLL是锁相环,就是用来倍频的一个内部电路,有了它,12M的频率可以提高到48M,或者72M。
系统振荡器,就是我们焊接的外部晶振。
===================================================================
By 下家山 Q群 75303301 上海松江文汇路928号258室 松江大学城 8/5/2012
上海索漫科技 http://www.xiajiashan.com 专注嵌入式(ARM7,Cortex-M0,Cortex-M3,ARM9,linux)培训====================================================
四:PLL输入时钟既然PLL输入时钟有三个来源,那么怎么选择呢?
LPC1114(Cortex-M0)是通过SYSPLLCLKSEL寄存器来选择的
具体选择哪种,用户自己设置!(不难理解吧)
五:主时钟来源主时钟,四个来源中的两个,一个是sys_pllclk_in一个是sys_pllclk_out,这两个时钟之间就隔了一个“系统PLL”,这个系统PLL是什么呢?呵呵,系统PLL的文章可大了!我们这里先不详细介绍,你在这里只需把它当作一个黑盒子,这个黑盒子就是一个放大器,比如,进去是时钟是12M,出来的时钟可以达到48M。就这么简单。
好,主时钟进来的四根线都搞清楚了,那么这四根线该选择哪根呢?
LPC1114(Cortex-M0)是通过MAINCLKSEL寄存器来选择的
具体选择哪种,用户自己设置!
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
eleaction01 阅读:4511