热度 28
2012-8-6 16:44
2191 次阅读|
0 个评论
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