LPC17XX 数据手册摘要之系统时钟与功率控制
系统时钟与功率控制
一、系统时钟
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:上述唤醒中断的前提是这些中断被使能。
LPC17XX 数据手册摘要之系统时钟与功率控制的更多相关文章
- JZ2440 裸机驱动 第10章 系统时钟和定时器
本章目标 了解S3C2410/S3C2440的时钟体系结构 掌握通过设置MPLL改变系统时钟的方法 掌握在不同的频率下设置存储控制器的方法 掌握PWM定时器的用法 ...
- windows 系统时钟
偶然发现了一个函数用以查询操作系统的时钟间隔: BOOL WINAPI GetSystemTimeAdjustment( _Out_ PDWORD lpTimeAdjustment, _Out_ PD ...
- STM32学习笔记(六) SysTick系统时钟滴答实验(stm32中断入门)
系统时钟滴答实验很不难,我就在面简单说下,但其中涉及到了STM32最复杂也是以后用途最广的外设-NVIC,如果说RCC是实时性所必须考虑的部分,那么NVIC就是stm32功能性实现的基础,NVIC的难 ...
- STM32学习笔记:系统时钟和SysTick定时器
原文:http://blog.sina.com.cn/s/blog_49cb42490100s60d.html 1. STM32的时钟系统 在STM32中,一共有5个时钟源,分别是HSI.HS ...
- STM32F4_RCC系统时钟配置及描述
Ⅰ.概述 对于系统时钟应该都知道它的作用,就是驱动整个芯片工作的心脏,如果没有了它,就等于人没有了心跳. 对于使用开发板学习的朋友来说,RCC系统时钟这一块知识估计没怎么去配置过,原因在于开发板提供的 ...
- Linux 系统时钟(date) 硬件时钟(hwclock)
/********************************************************************* * Linux 系统时钟(date) 硬件时钟(hwclo ...
- DELPHI下读取与设置系统时钟
在DELPHI下读取与设置系统时钟 很多朋友都想在自己的程序中显示系统时间 这在DELPHI中十分容易 利用DateToStr(Date)及TimeToStr(Time)函数即可实现. 二者的函数原型 ...
- 安装WP8 SDK出现“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的解决办法
今天重装系统了,在安装WP8 SDK时,安装了一小部分就提示“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的错误. 根据错误提示,貌似跟时间有关,百度了下.果真.把系统时间往前调 ...
- MSP430主系统时钟以及430的低功耗设置
如何将系统时钟设置到外部高频晶体振荡器,430的MCLK默认的是DCO的,如何安全的从DCO切换到外部晶体振荡器,这是一个很重要的步骤,因为经过此步骤,可以极大地提高430的处理能力,DCO在内部,可 ...
随机推荐
- bzoj 1800: [Ahoi2009]fly 飞行棋 暴力
1800: [Ahoi2009]fly 飞行棋 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...
- 插头dp的几个模板
/* ural1519 求经过全部可行点的哈密顿回路的个数 括号匹配法,转移有点复杂,可是时间空间比較小 */ #include<cstdio> #include<cstring&g ...
- 基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)
1.导入jar watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsize/400 ...
- Windows二进制文件的Python扩展包
http://www.lfd.uci.edu/~gohlke/pythonlibs/ https://pypi.python.org/simple/
- Getting Started With Python Internals
http://akaptur.com/blog/2014/08/03/getting-started-with-python-internals/
- [Effective C++ --017]以独立语句将newed对象置入智能指针
这一节也比较简单,先假设我们有如下的函数: int foo(); void memFoo(shared_ptr<T> pw, int foo); 现在假设我们要调用memFoo函数: me ...
- Android(java)学习笔记127:Android Studio新建工程中的build.gradle、settings.gradle
随着信息化的快速发展,IT项目变得越来越复杂,通常都是由多个子系统共同协作完成.对于这种多系统.多项目的情况,很多构建工具都已经提供了不错的支持,像maven.ant.Gradle除了借鉴了ant或者 ...
- 深入理解计算机系统第二版习题解答CSAPP 2.10
对于任一位向量a,有a ^ a = 0.考虑下面的程序: void inplace_swap(int *x, int *y) { *y = *x ^ *y; *x = *x ^ *y; *y = *x ...
- 关于Eclipse中配置产品启动的插件
比较省事的是白哥给我一个配置文件(EE_CONF_TEST.launch),使用的方法白哥推荐我新建一个普通的java项目,然后拷贝到这个项目中. 拷贝到项目中之后在Run Configuration ...
- Jquery 获取checkbox的checked问题
这个郁闷了,今天写这个功能的时候发现了问题,上网找了好多资料对照,更加纠结... 事实证明一切,自己测试了N遍,发现网上的说法和自己以前的理解都是错的,不知道大家有没发现. 下面来看看网上大多资料的说 ...