"); //-->
LPC1114系统时钟原理(作者:下家山(请尊重原创,转载请注明) http://www.xiajiashan.com )
主时钟有六路输出,这六路又归纳为四类:
第一类:给系统时钟分频器
第二类:有四路,分别给SSP0外设时钟分频器(SSP0_PCLK)
UART外设时钟分频器(UART_PCLK)
SSP1外设时钟分频器(SSP1_PCLK)
SYSTICK定时器时钟分频器(SYSTICK_timer)
第三类:给看门狗时钟分频器(WDT_PCLK)
第四类:给CLKOUT引脚时钟分频器(CLKOUT pin)
6.1 系统时钟这里的系统时钟,包括给CPU内核(AHB,APB,Cortex-M0/3 FCLK, HCLK、SysCon 和PMU),ROM,RAM,FLASH;及所有外设如:I2C,GPIO,timer,UART,AD,SPI等共19个。
那么cortex系统是怎么来设计这些时钟系统的呢?
首先,Cortex给这19种时钟的每个时钟设计了一个开关,那么,我们怎么操作这个开关呢?在lpc1114中是通过AHB时钟控制寄存器AHBCLKCTRL来操作的。
那么,系统时钟从哪里来呢?由图,我们很容易知道,是从主时钟通过“系统时钟分频器”得到。但是,为什么要分频呢?给AHB,APB外设时钟有的不能太快,比如I2C,所以要分频,大家好理解,但是给cortex的核心频率(FCLK,HCLK等)是越快越好啊,为什么还要经过“系统时钟分频器”来分频呢?
我想是为了睡眠状态,低功耗状态,待机状态等需要吧!!!在这个问题上我希望有人加入更深入的研究与讨论,如果哪位有做过相关研究,请补充!!!
6.2外设时钟这里的外设时钟,指
分别给SSP0外设时钟分频器(SSP0_PCLK)
UART外设时钟分频器(UART_PCLK)
SSP1外设时钟分频器(SSP1_PCLK)
SYSTICK定时器时钟分频器(SYSTICK_timer)
这些外设时钟的输入时钟都来自于主时钟,因为,主时钟很高,有些外设接收不了这么高的时钟,所以要分频!
这里有个疑问,为什么I2C,A/D这些外设没有独立外设时钟分频器呢?(希望有人加入更深入的研究与讨论,如果哪位有做过相关研究,请补充!!!)
为什么UART有16位分频因子还要设计外设时钟分频器呢?(希望有人加入更深入的研究与讨论,如果哪位有做过相关研究,请补充!!!)
=======================================================================================
By 下家山 Q群 75303301 上海松江文汇路928号258室 松江大学城 8/6/2012
上海索漫科技 http://www.xiajiashan.com 专注嵌入式(ARM7,Cortex-M0,Cortex-M3,ARM9,linux)培训
6.3 看门狗时钟
看门狗时钟有三个来源,
IRC振荡器;
看门狗振荡器;
主时钟;
具体选择哪个,由WDT 时钟源选择寄存器(WDTCLKSEL)决定!
看门狗时钟源选择后,还要经过一个分频器,当然你可以选择1分频(就是不分频)。
6.4 CLKOUT pin首先,要搞清楚,什么是CLKOUT pin。CLKOUT pin,就是时钟输出引脚,或者说,在这个引脚上(PIO0_1)引脚上有象晶振一样的波形输出,这个有什么用呢?这个功能太好了,当你要接摄像头,或者视频转换类的芯片,这些芯片的输入频率有时候要根据应用变化,那么我们就可以接到这个引脚,也就是说,我们这个cpu,lpc1114可以提供一个晶振源给外设。
CLKOUT pin的时钟源有四个,分别是:
IRC振荡器;
系统振荡器;
看门狗振荡器;
主时钟;
具体选择哪个,由CLKOUT 时钟源选择寄存器(CLKOUTCLKSEL)决定。
选择时钟源后,CLKOUT pin的分频器就不用介绍了吧!!!
索漫赠言:不要被这些错综复杂的关系搞糊涂,觉得很麻烦就不去理清楚,其实当你试着去理清晰的时候,你会发现很有意思!整个过程也增加了自己探索未知的兴趣!!!
当我把这篇文章写完时,Cortex的时钟系统已经非常清晰,而且已经觉得非常简单!!!
2012-6-19
写于上海松江
作者:下家山(请尊重原创, 转载请注明) http://www.xiajiashan.com,有什么问题可与我联系:ximenpiaoxue4016@sina.com
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。
eleaction01 阅读:4513