系统时钟与功率控制
一、系统时钟
LPC17XX有三个独立的时钟振荡器,分别是主振荡器(MIAN_OSC)、内部RC振荡器(IRC_OSC)、实时时钟振荡器(RTC_OSC)。LPC17XX时钟框图如下:
LPC17XX 时钟框图
如上图所示,三个振荡器通过 system clock select 三选一 后经过(或不经过)MAIN PLL 最后经 CPU CLOCK DIVIDER 分频为CPU提供时钟;其中主振荡器(MAIN_OSC)还可通过USB PLL为USB提供时钟;内部RC振荡器(IRC_OSC)还可作为看门狗的时钟源。
主振荡器(MIAN_OSC)的工作频率为1MHz~25MHz;内部RC振荡器(IRC_OSC)的额定频率为4MHz,但其精度会受电压和温度的影响存在1%的调整。
当系统重新上电或因任何原因复位后,LPC17XX 会将内部RC振荡器(IRC_OSC)作为CPU的时钟源,之后可通过软件更改时钟源。
二、功率控制
LPC17XX 有四种降低功率损耗的运行模式:睡眠模式、深度睡眠模式、掉电模式和深度掉电模式。
1.睡眠模式(sleep mode)
在睡眠模式下:
arm 内核时钟被停止,重新使能内核时钟可退出睡眠模式;
cpu 停止执行指令,复位或者中断可恢复执行指令;
外设继续运行,外设中断可使处理器回复执行指令;
处理器内核自身、存储系统以及相关控制其、内部总线停止运行,进而降低动态功率消耗。
2.深度睡眠模式(deep-sleep mode)
在深度睡眠模式下:
主振荡器掉电,所有内部时钟停止;
处理器的状态和寄存器、外设寄存器、SRAM里面的值都被保存,管脚逻辑电平被设置为静态;
内部RC振荡器失能,但并未被关闭,以便快速推出深度睡眠模式;
实时时钟振荡器正常运行,其中断可作为唤醒源;
唤醒后需重新配置PLL和分频器;
只有复位和与时钟无关的中断可唤醒深度睡眠模式,。这些中断包括NMI、外部中断EINT0到EINT3、GPIO中断、以太网Wake-On-LAN中断、掉电检测、 RTC报警中断、看门狗定时器超时、USB输入引脚跳变或CAN输入引脚跳变
3.掉电模式(power-down mode)
在掉电模式下:
与深度睡眠模式操作相同;
唤醒后,在访问Flash存储器中的代码或数据前,必须等待Flash恢复;
只有复位和与时钟无关的中断可唤醒深度睡眠模式,。这些中断包括NMI、外部中断EINT0到EINT3、GPIO中断、以太网Wake-On-LAN中断、掉电检测、 RTC报警中断、看门狗定时器超时、USB输入引脚跳变或CAN输入引脚跳变
4.深度掉电模式(deep power-down mode)
在深度掉电模式下:
整个芯片电源被关闭;
通过外部复位信号、RTC中断唤醒。
ps:上述唤醒中断的前提是这些中断被使能。