快速学Arm(14)--LPC2478的oscillators
在叙述之前,我们先区别一下crystal和oscillator.crystal一般指晶体,是一种无源的器件,而oscillator这是晶振,也就是说基本上是一个震荡电路,这个震荡电路中一般会包括一个crystal.
来自于user.manual.lpc24xx.pdf文档,LPC2400包括3个独立的oscillator.这三个Oscillator分别是:主晶振,内部RC晶振,RTC晶振.每个晶振至少有一个用途.
在LPC2400复位后,首先工作的是内部的晶振,一直工作到被软件切换到其他的晶振.在系统复位后,不需要外部的晶体就能工作,Boot Loader代码可以以内部的已知的频率运行.当Boot Loader切换到用户程序,可以激活主晶振进入用户程序.
内部的RC晶振(IRC)可以用于看门狗的时钟源,IRC不能用于USB接口,USB需要更高精度的时钟.IRC正常的频率是4MHz.上电和芯片复位时,LPC2400都使用IRC.最后会切换到其他的时钟源.
主晶振用于CPU的时钟源.主晶振工作在1M至24Mhz.这个频率可以通过PLL推进到更高的频率,直到CPU的最大运行频率.此晶振输出称为OSCCLK.此时钟被选择为PLL的输入,称为PLLCLKIN.参考频率CCLK=PLLCLKIN除非PLL被激活并且连接.需要查看PLL的详细描述.主晶振有不同的模式,也就是连接方法,连接方法的不同,其产生的频率范围也不同.
RTC晶振当然就是用于RTC,但也可以用于看门狗.另外RTC晶振也可以用于驱动PLL和CPU.
关于晶振和时钟控制的APB寄存器在APB的0xE01F C000.
三个时钟源在不连接PLL的情况下可以安全的切换.在系统使用PLL时则需要一些规则来切换.
时钟源选择寄存器:CLKSRCSEL-0xE01F C10C,使用方法查一下手册就可以了.