《深度睡眠模式操作技术笔记.pdf》由会员分享,可在线阅读,更多相关《深度睡眠模式操作技术笔记.pdf(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 广州致远电子有限公司 工程技术工程技术笔笔记记LM3S 系列微控制器系列微控制器 AN01010101 V1.00 Date:2008/07/24 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作 类别 内容 关键词 睡眠、深度睡眠、系统时钟源、系统时钟频率 摘 要 本文主要介绍了如何对 LM3S 系列微控制器的睡眠和深度睡眠模式的操作 Note Technical 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作修订历史修订历史 版本 日期 原因 V1.00 2008/07/24 创建文档 工程技术笔记工程技术笔记 2008
2、 Guangzhou ZHIYUAN Electronics CO.,LTD.i 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作销售与服务网络(一)销售与服务网络(一)广州周立功单片机发展有限公司广州周立功单片机发展有限公司 地址:广州市天河北路 689 号光大银行大厦 12 楼 F4 邮编:510630 电话:(020)38730916 38730917 38730972 38730976 38730977 传真:(020)38730925 网址: 广州专卖店 地址:广州市天河区新赛格电子城 203-204 室 电话:(02
3、0)87578634 87569917 传真:(020)87578842 南京周立功 地址:南京市珠江路 280 号珠江大厦 2006 室 电话:(025)83613221 83613271 83603500 传真:(025)83613271 北京周立功 地址:北京市海淀区知春路 113 号银网中心 A 座1207-1208 室(中发电子市场斜对面)电话:(010)62536178 62536179 82628073 传真:(010)82614433 重庆周立功 地址:重庆市石桥铺科园一路二号大西洋国际大厦(赛格电子市场)1611 室 电话:(023)68796438 68796439 传真:
4、(023)68796439 杭州周立功 地址:杭州市天目山路 217 号杭州电子科技大楼 502室 电话:(0571)28139611 28139612 28139613 传真:(0571)28139621 成都周立功 地址:成都市一环路南二段 1 号数码同人港 401 室(磨子桥立交西北角)电话:(028)85439836 85437446 传真:(028)85437896 深圳周立功 地址:深圳市深南中路 2070 号电子科技大厦 C 座 4楼 D 室 电话:(0755)83781788(5 线)传真:(0755)83793285 武汉周立功 地址:武汉市洪山区广埠屯珞瑜路 158 号 1
5、2128 室(华中电脑数码市场)电话:(027)87168497 87168297 87168397 传真:(027)87163755 上海周立功 地址:上海市北京东路 668 号科技京城东座 7E 室 电话:(021)53083452 53083453 53083496 传真:(021)53083491 西安办事处 地址:西安市长安北路 54 号太平洋大厦 1201 室 电话:(029)87881296 83063000 87881295 传真:(029)87880865 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.ii 广
6、州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作销售与服务网络(二)销售与服务网络(二)广州致远电子有限公司广州致远电子有限公司 地址:广州市天河区车陂路黄洲工业区 3 栋 2 楼 邮编:510660 传真:(020)38601859 网址:(嵌入式系统事业部)(工控网络事业部) (楼宇自动化事业部)技术支持:技术支持:CAN-bus:电话:(020)22644381 22644382 22644253 邮箱: iCAN 及模块:电话:(020)28872344 22644373 邮箱:MiniARM:以太网及无线:电话:(020
7、)28872684 28267813 电话:(020)22644380 22644385 22644386 邮箱:邮箱: 编程器:分析仪器:电话:(020)22644371 电话:(020)22644375 28872624 28872345 邮箱:邮箱: ARM 嵌入式系统:楼宇自动化:电话:(020)28872347 28872377 22644383 22644384 电话:(020)22644376 22644389 28267806 邮箱:邮箱: 销售:销售:电话:(020)22644249 22644399 22644372 22644261 28872524 28872342 2
8、8872349 28872569 28872573 38601786 维修:维修:电话:(020)22644245 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.iii 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作目 录 1.适用范围.1 2.睡眠与深度睡眠模式的应用.2 2.1 功能概述.2 2.2 基础时钟源.3 2.3 API函数.3 2.4 睡眠模式配置操作.5 2.5 睡眠模式操作的程序示例.5 2.6 深度睡眠模式配置操作.6 2.7 深度睡眠模式
9、操作的程序示例.9 2.8 深度睡眠模式中串口通信的操作示例.10 2.9 中断唤醒睡眠状态时间参数测试.12 3.参考资料.15 4.免责声明.16 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.1 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作1.适用范围适用范围 此技术笔记适用于 LM3S1000/2000/3000/5000/8000 系列微控制器。工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,L
10、TD.1 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作2.睡眠与深度睡眠模式的应用睡眠与深度睡眠模式的应用 2.1 功能概述功能概述 LM3S系列单片机主要有 3 种工作模式:运行模式(Run-Mode)、睡眠模式(Sleep-Mode)、深度睡眠模式(Deep-Sleep-Mode)。某些型号还具有单独的极为省电的冬眠模块(Hibernation Module)。而对各个模式下的外设时钟选通以及系统时钟源的控制主要由表 2.1中的寄存器来完成。表 2.1 控制寄存器 名称 描述 RCC、RCC2 运行模式时钟配置 RCGC
11、0RCGC2 运行模式时钟选通控制 SCGC0SCGC2 睡眠模式时钟选通控制 DCGC0DCGC2 深度睡眠模式时钟选通控制 DSLPCLKCFG 深度睡眠系统时钟配置 运行模式是正常的工作模式,处理器内核将积极地执行代码。在睡眠模式下,系统时钟不变,但处理器内核不再执行代码(内核因不需要时钟而省电)。在深度睡眠模式下,系统时钟可变,处理器内核同样也不再执行代码。深度睡眠模式比睡眠模式更为省电。有关这 3 种工作模式的具体区别请参见表 2.2的描述。调用函数 SysCtlSleep()可使处理器立即进入睡眠模式,而调用函数 SysCtlDeepSleep()可使处理器立即进入深度睡眠模式。任
12、一中断都可以将处理器从睡眠或深度睡眠模式唤醒,并使处理器恢复到睡眠前的运行状态。因此在进入睡眠或深度睡眠之前,必须配置某个片内外设的中断并允许其在睡眠或深度睡眠模式下继续工作,如果不这样,则只有复位或重新上电才能结束睡眠或深度睡眠状态。表 2.2 运行模式、睡眠模式和深度睡眠模式的运行对照表 处理器状态 比较类别 运行模式 (Run-Mode)睡眠模式 (Sleep-Mode)深度睡眠模式 (Deep-Sleep-Mode)处理器和存储器状态 执行代码 存储器内容保持不变,代码停止运行 存储器内容保持不变,代码停止运行 功耗大小 较大 小 很小 控制外设时钟选通功能的寄存器组 RCGCn RC
13、GCn(ACG 清零)或 SCGCn(ACG 置位)RCGCn(ACG 清零)或 DCGCn(ACG 置位)系统时钟源 所有时钟源都可用,包括MOSC、IOSC、IOSC/4、30KHz 内部振荡器和 外部实时振荡器和 PLL 输出 与运行模式下的系统时钟源相同 可以选择的时钟源包括 MOSC、IOSC、30KHz 内部振荡器和 外部实时振荡器,并且上述可供选择的时钟源也可被分频并作为系统时钟源 注:ACG 是寄存器 RCC 内的自动时钟选通位。在进入睡眠或深度睡眠模式之前一般都应置位 ACG。工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO
14、.,LTD.2 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作2.2 基础时钟源基础时钟源 LM3S 系列单片机的系统时钟可由下列的基础时钟源转换而来:?主振荡器(MOSC):由外部晶体振荡器或单端时钟源来驱动;?12MHz 内部振荡器(IOSC):内部振荡器是片内时钟源。它不需要使用任何外部元件便可工作。内部振荡器的频率是 12MHz30%;?30KHz 内部振荡器:内部 30KHz 振荡器与内部 12MHz 振荡器类似,它提供 30KHz30%的工作频率,主要用于在深度睡眠的节电模式中;?外部实时振荡器:外部实时振荡器提供
15、一个低频率、精确的时钟基准。它的目的是给系统提供一个实时时钟源。实时振荡器是休眠模块的一部分,它也可为深度睡眠和休眠模式提供一个精确的时钟源。2.3 API 函数函数 1 SysCtlSleep()这个函数是使用WFI汇编指令,使处理器立即进入睡眠模式,并等待中断异常发生唤醒处理器,如表 2.3所示。表 2.3 函数 SysCtlSleep()功能 使处理器立即进入睡眠模式 原型 void SysCtlSleep(void)参数 无 返回 无(在处理器没有被唤醒之前,暂时不会返回)2 SysCtlDeepSleep()这个函数先使能系统控制寄存器(NVICSC)的深度睡眠位,然后再使用WFI汇
16、编指令,使处理器立即进入深度睡眠模式,并等待中断异常发生唤醒处理器,如表 2.4所示。表 2.4 函数 SysCtlDeepSleep()功能 使处理器立即进入深度睡眠模式 原型 void SysCtlDeepSleep(void)参数 无 返回 无(在处理器没有被唤醒之前,暂时不会返回)3 SysCtlPeripheralClockGating()这个函数是控制是否使能自动时钟门控功能,如表 2.5所示。表 2.5 函数 SysCtlPeripheralClockGating()功能 控制睡眠或深度睡眠模式中是否采用 SCGCn 和 DCGCn 来控制外设时钟选通功能 原型 void Sys
17、CtlPeripheralClockGating(tBoolean bEnable)参数 bEnable:取值为 true 或 false 当值为 true 时,睡眠或深度睡眠模式中外设时钟选通由 SCGCn 和 DCGCn 来控制 当值为 false 时,睡眠或深度睡眠模式中外设时钟选通由运行模式下的 RCGCn 来控制,SCGCn 和 DCGCn 将不起作用 返回 无 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.3 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式
18、的操作4 SysCtlPeripheralSleepEnable()这个函数是用于使能睡眠模式下某个片内外设的时钟选通,如表 2.6所示。表 2.6 函数 SysCtlPeripheralSleepEnable()功能 使能睡眠模式下的某个片内外设 原型 void SysCtlPeripheralSleepEnable(unsigned long ulPeripheral)参数 ulPeripheral:要使能的片内外设,与函数 SysCtlPeripheralEnable()当中参数 ulPeripheral 的取值相同 返回 无 5 SysCtlPeripheralSleepDisable
19、()这个函数是用于禁能睡眠模式下某个片内外设的时钟选通,如表 2.7所示。表 2.7 函数 SysCtlPeripheralSleepDisable()功能 禁能睡眠模式下的某个片内外设 原型 Void SysCtlPeripheralSleepDisable(unsigned long ulPeripheral)参数 ulPeripheral:要禁能的片内外设,与函数 SysCtlPeripheralEnable()当中参数 ulPeripheral 的取值相同返回 无 6 SysCtlPeripheralDeepSleepEnable()这个函数是用于使能深度睡眠模式下某个片内外设的时钟选
20、通,如表 2.8所示。表 2.8 函数 SysCtlPeripheralDeepSleepEnable()功能 使能深度睡眠模式下的某个片内外设 原型 void SysCtlPeripheralDeepSleepEnable(unsigned long ulPeripheral)参数 ulPeripheral:要使能的片内外设,与函数 SysCtlPeripheralEnable()当中参数 ulPeripheral 的取值相同返回 无 7 SysCtlPeripheralDeepSleepDisable()这个函数是用于禁能深度睡眠模式下某个片内外设的时钟选通,如表 2.9所示。表 2.9
21、函数 SysCtlPeripheralDeepSleepDisable()功能 禁能深度睡眠模式下的某个片内外设 原型 void SysCtlPeripheralDeepSleepDisable(unsigned long ulPeripheral)参数 ulPeripheral:要禁能的片内外设,与函数 SysCtlPeripheralEnable()当中参数 ulPeripheral 的取值相同返回 无 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.4 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与
22、深度睡眠模式的操作睡眠与深度睡眠模式的操作2.4 睡眠模式配置操作睡眠模式配置操作 睡眠模式下,处理器内核和存储器子系统都不使用时钟。外设仅在相应的时钟选通位使能时,才使用时钟。睡眠模式下,系统时钟源和频率均与运行模式下的相同。其配置流程如图 2.1所示。图 2.1 睡眠模式的配置流程 2.5 睡眠模式操作的程序示例睡眠模式操作的程序示例 本示例程序配置运行模式下的系统时钟源为主振荡器,采用外设定时器 0 超时溢出中断将处理器从睡眠模式中唤醒,并返回到睡眠前的处理器状态,因此在睡眠模式下就必须使能外设定时器 0 的时钟选通,且必须设置在异常向量表中定时器 0 的中断服务程序地址,主程序如程序清
23、单 2.1所示。程序清单 2.1 睡眠模式操作/*Function name:main *Descriptions:主函数*input parameters:无*output parameters:无 */工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.5 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作int main(void)SysCtlClockSet(SYSCTL_SYSDIV_1|SYSCTL_USE_OSC|SYSCTL_XTAL_6MHZ|SYSCT
24、L_OSC_MAIN);/配置系统时钟为 6MHZ SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);/使能外设 TIMER0 TimerConfigure(TIMER0_BASE,TIMER_CFG_32_BIT_PER);/配置定时器 0 为 32BIT 周期模式 TimerLoadSet(TIMER0_BASE,TIMER_A,30000000);/加载值=3000000,即睡眠时间 5S TimerControlStall(TIMER0_BASE,TIMER_A,true);/单步调试程序,TIMER 暂停计数 TimerIntClear(TIM
25、ER0_BASE,0 x70F);/清除定时器 0 中断 TimerIntEnable(TIMER0_BASE,TIMER_TIMA_TIMEOUT);/超时溢出中断使能 IntEnable(INT_TIMER0A);/对应外设 TIMER0A 中断使能 IntMasterEnable();/中断总使能 TimerEnable(TIMER0_BASE,TIMER_A);/启动定时器 SysCtlPeripheralClockGating(true);/置位 ACG,开启自动时钟门控 SysCtlPeripheralSleepEnable(SYSCTL_PERIPH_TIMER0);/在睡眠模式
26、下使能 TIMER0 SysCtlSleep();/使处理器进入睡眠模式,/等待定时器溢出中断唤醒处理器 while(1)/*Function name:TIMERA_ISR *Descriptions:定时器 0 中断服务程序*input parameters:无*output parameters:无 */void TIMERA_ISR(void)unsigned long IntStatus;IntStatus=TimerIntStatus(TIMER0_BASE,true);TimerIntClear(TIMER0_BASE,IntStatus);2.6 深度睡眠模式配置操作深度睡眠模
27、式配置操作 深度睡眠模式下,处理器内核和存储器子系统都不使用时钟。外设仅在相应的时钟选通位使能时,才使用时钟。在深度睡眠模式下,其系统时钟源默认为主振荡器,可通过对寄存器DSLPCLKCFG进行配置,从而对系统时钟源进行选择,其配置参数及时钟源和系统时钟频率如工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.6 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作表 2.10所示,其配置流程如图 2.2所示。工程技术笔记工程技术笔记 2008 Guangzhou ZHIY
28、UAN Electronics CO.,LTD.7 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作表 2.10 配置参数及时钟源和频率对比表 配置参数 睡眠前状态 DSOSCSRC(选择时钟源)DSDIVORIDE(时钟分频值)系统时钟源 系统时钟频率 0(PLL 不运行)忽略 系统时钟源频率 0(PLL 运行)主振荡器 1 内部 12MHz 振荡器3 内部 30KHz 振荡器PLL 运行 或 PLL 不运行 7 分频值=DSDIVORIDE+1外部实时振荡器 分频值系统时钟源频率注:其中 DSOSCSRC 和 DSDIVOR
29、IDE 为 DSLPCLKCFG 寄存器的两个有效位段。图 2.2 深度睡眠模式的配置流程 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.8 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作2.7 深度睡眠模式操作的程序示例深度睡眠模式操作的程序示例 本示例程序配置运行模式下的系统时钟源为PLL输出,频率为 20MHz,而深度睡眠模式下采用内部 30KHz振荡器作为系统时钟源,频率为(30/(DSDIVORIDE+1)KHz;采用外设定时器 0 超时溢出中断将处理
30、器从深度睡眠模式中唤醒,并返回到深度睡眠前的处理器状态,因此在深度睡眠模式下就必须使能外设定时器 0 的时钟选通,且必须设置在异常向量表中定时器 0 的中断服务程序地址,主程序如程序清单 2.2所示。程序清单 2.2 深度睡眠模式操作/*Function name:main *Descriptions:主函数*input parameters:无*output parameters:无 */int main(void)SysCtlClockSet(SYSCTL_SYSDIV_10|SYSCTL_USE_PLL|SYSCTL_XTAL_6MHZ|SYSCTL_OSC_MAIN);/配置系统时钟为
31、 20MHZ SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);/使能外设 TIMER0 TimerConfigure(TIMER0_BASE,TIMER_CFG_32_BIT_PER);/配置定时器 0 为 32BIT 周期模式 TimerLoadSet(TIMER0_BASE,TIMER_A,30000000);/加载值=3000000,即睡眠时间 5S TimerControlStall(TIMER0_BASE,TIMER_A,true);/单步调试程序,TIMER 暂停计数 TimerIntClear(TIMER0_BASE,0 x70F);/清
32、除定时器 0 中断 TimerIntEnable(TIMER0_BASE,TIMER_TIMA_TIMEOUT);/超时溢出中断使能 IntEnable(INT_TIMER0A);/对应外设 TIMER0A 中断使能 IntMasterEnable();/中断总使能 TimerEnable(TIMER0_BASE,TIMER_A);/启动定时器 SysCtlPeripheralClockGating(true);/置位 ACG,开启自动时钟门控 HWREG(SYSCTL_DSLPCLKCFG)=(023)|/设置分频值(3 4);/选择系统时钟源,此处为内部30KHz SysCtlPeriph
33、eralDeepSleepEnable(SYSCTL_PERIPH_TIMER0);/在深度睡眠模式下使能 TIMER0 SysCtlDeepSleep();/使处理器进入睡眠模式,/等待定时器溢出中断唤醒处理器 while(1)/*Function name:TIMERA_ISR *Descriptions:定时器 0 中断服务程序*input parameters:无 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.9 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式
34、的操作*output parameters:无 */void TIMERA_ISR(void)unsigned long IntStatus;IntStatus=TimerIntStatus(TIMER0_BASE,true);TimerIntClear(TIMER0_BASE,IntStatus);2.8 深度睡眠模式中串口通信的操作示例深度睡眠模式中串口通信的操作示例 由于在深度睡眠模式中,其系统时钟源频率与运行模式下可能不同,因此当微控制器运用于一些通信场合中,就有可能发生因系统时钟源频率发生变化,而导致通信系统的不可靠。所以在此种情况中,应对深度睡眠模式中系统时钟源的控制和片内通信外设
35、要有详细的了解和准确的配置。本示例程序配置运行模式下的系统时钟源为PLL输出,频率为 20MHz;而深度睡眠模式下的系统时钟源,由于串口通信中对波特率的参考时钟的频率精确度要求较高,而内部振荡器的频率偏移较大,因此采用主时钟振荡器作为系统时钟源,频率为 6MHz;中断唤醒采用片内外设UART0 的接收中断将处理器从深度睡眠模式中唤醒,并返回到深度睡眠前的处理器状态,因此在深度睡眠模式下就必须使能外设UART0 的时钟选通,且必须设置在异常向量表中UART0 的中断服务程序地址,程序如程序清单 2.3所示。程序清单 2.3 深度睡眠中的串口通信/*Function name:main *Desc
36、riptions:主函数*input parameters:无*output parameters:无 */#define SleepCLK (6000000)/深度睡眠模式下的时钟频率#define Baud (9600)/通信波特率 int main(void)WaitJTAG();/防止 JTAG 失效 SysCtlClockSet(SYSCTL_SYSDIV_10|SYSCTL_USE_PLL|SYSCTL_XTAL_6MHZ|SYSCTL_OSC_MAIN);/配置 PLL,系统时钟为 20MHZ SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA)
37、;/使能外设 GPIOA SysCtlPeripheralEnable(SYSCTL_PERIPH_UART0);/使能外设 UART0 GPIOPadConfigSet(USE_PORT,RX_LED,GPIO_STRENGTH_2MA,GPIO_PIN_TYPE_STD_WPU);/引脚配置 GPIODirModeSet(USE_PORT,RX_LED,GPIO_DIR_MODE_OUT);/引脚输出配置 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.10 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡
38、眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作 GPIOPinWrite(USE_PORT,RX_LED,(RX_LED);/测试引脚功能 TimeDelay(500000);GPIOPinWrite(USE_PORT,RX_LED,(RX_LED);Uart0Init(Baud,1);/初始化 UART0,设置中断优先级为 1 IntMasterEnable();/中断总使能 SysCtlPeripheralClockGating(true);/置位 ACG,开启自动时钟门控 HWREG(SYSCTL_DSLPCLKCFG)=(0 23)|(0 4);/深度睡眠模式下的时钟配置 Uart0S
39、end(Enter Sleep!rn,strlen(Enter Sleep!rn);/提示进入睡眠 UARTConfigSetExpClk(UART0_BASE,/根据深度睡眠模式下的时钟源频率,SleepCLK,/配置串口通信波特率和数据格式 Baud,UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE);SysCtlPeripheralDeepSleepEnable(SYSCTL_PERIPH_GPIOA);/在深度睡眠模式下使能 GPIOA SysCtlPeripheralDeepSleepEnable(SYSCTL_
40、PERIPH_UART0);/在深度睡眠模式下使能 UART0 SysCtlDeepSleep();/使 CM3 进入深度睡眠模式 UARTConfigSet(UART0_BASE,/CM3 被唤醒,重新根据系统时钟频率 Baud,/配置相关串口通信参数 UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE);Uart0Send(Exit Sleep!rn,strlen(Exit Sleep!rn);/提示 CM3 被唤醒 while(1)if(ucBit)Uart0Send(RX:,strlen(RX:);Uart0Send
41、(ucBuffer,strlen(ucBuffer);/回发数据 Uart0Send(rn,strlen(rn);ucBit=0;/清发送标志 ucNum=0;memset(ucBuffer,0,200);/重新初始化缓冲区 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.11 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作2.9 中断唤醒睡眠状态时间参数测试中断唤醒睡眠状态时间参数测试 本节针对LM3S系列单片机在两种睡眠模式下的中断唤醒时间进行了测试,其具体的
42、测试条件和结果如表 2.11错误!未找到引用源。错误!未找到引用源。所示。表 2.11 睡眠状态的中断唤醒时间测试表 项目 睡眠模式 深度睡眠模式 时钟源 PLL(20MHz)主振荡器(6MHz)内部振荡器(12MHz)内部振荡器(30KHz)外部实时振荡器(32KHz)串口接收中断唤醒时间 3.3ms 4.07ms 27.22ms 42.55ms 50.91ms GPIO 中断唤醒时间 2.09us 774.70us 24.27ms 24.37ms 24.45ms 串口中断唤醒接收数据 正确 正确 错误 错误 正确 中断方式 串口接收中断 或 GPIO 下降沿中断 运行模式状态 系统时钟源为
43、 PLL 输出,频率为 20MHz 测试方式 利用逻辑分析仪观察 PC 机串口发送数据或外部按键动作 到对应的中断服务程序中 IO 口电平翻转的时间间隔 测试方式的连接示意图如图 2.3所示。图 2.3 测试连接示意图 根据以上测试方法,以下分别为测试时利用逻辑分析仪 LA1032 捕捉的时序波形图。1.睡眠模式下中断唤醒时间参数时序波形图如图 2.4所示。其中图中的第一次唤醒为串口接收中断唤醒,通过LED线的电平变换指示唤醒发生,时间标签为M1-M2;第二次唤醒为GPIO中断唤醒,通过KEYLED线的电平变换指示唤醒发生,时间标签为M3-M4。第二次唤醒 第一次唤醒 图 2.4 睡眠模式下的
44、中断唤醒时间参数时序图 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.12 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作2.深度睡眠模式下时钟源采用主振荡器的中断唤醒时间参数时序波形图如图 2.5所示。其中图中的第一次唤醒为串口接收中断唤醒,通过LED线的电平变换指示唤醒发生,时间标签为M1-M2;第二次唤醒为GPIO中断唤醒,通过KEYLED线的电平变换指示唤醒发生,时间标签为M3-M4。第一次唤醒 第二次唤醒 图 2.5 深度睡眠模式下外部 6MHz 时钟
45、源的中断唤醒时间参数时序图 3.深度睡眠模式下时钟源采用内部 12MHz振荡器的中断唤醒时间参数时序波形图如图 2.6所示。其中图中的第一次唤醒为串口接收中断唤醒,通过LED线的电平变换指示唤醒发生,时间标签为M1-M2;第二次唤醒为GPIO中断唤醒,通过KEYLED线的电平变换指示唤醒发生,时间标签为M3-M4。图 2.6 深度睡眠模式下内部 12MHz 时钟源的中断唤醒时间参数时序图 4.深度睡眠模式下时钟源采用内部 30KHz振荡器的中断唤醒时间参数时序波形图如图 2.7所示。其中图中的第一次唤醒为串口接收中断唤醒,通过LED线的电平变换指示唤醒发生,时间标签为M1-M2;第二次唤醒为G
46、PIO中断唤醒,通过KEYLED线的电平变换指示唤醒发生,时间标签为M3-M4。第一次唤醒 第二次唤醒 第一次唤醒 第二次唤醒 图 2.7 深度睡眠模式下内部 30KHz 时钟源的中断唤醒时间参数时序图 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.13 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作5.深度睡眠模式下时钟源采用外部实时 32KHz振荡器的中断唤醒时间参数时序波形图如图 2.8所示。其中图中的第一次唤醒为串口接收中断唤醒,通过LED线的电平变换指
47、示唤醒发生,时间标签为M1-M2;第二次唤醒为GPIO中断唤醒,通过KEYLED线的电平变换指示唤醒发生,时间标签为M3-M4。第二次唤醒 第一次唤醒 图 2.8 深度睡眠模式下外部实时 32KHz 时钟源的中断唤醒时间参数时序图 工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.14 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作3.参考资料参考资料 1.Cortex-M3 开发指南基于 LM3S8000 工程技术笔记工程技术笔记 2008 Guangzhou Z
48、HIYUAN Electronics CO.,LTD.15 广州致远电子有限公司广州致远电子有限公司 LM3S 系列微控制器 睡眠与深度睡眠模式的操作睡眠与深度睡眠模式的操作4.免责声明免责声明 版权 本应用笔记所陈述的产品文本及相关软件版权均属广州致远电子有限公司所有,其产权受国家法律绝对保护,未经本公司授权,其它公司、单位、代理商及个人不得非法使用和拷贝,否则将受到国家法律的严厉制裁。您如果需要我们公司的产品及相关信息,请及时与我们联系,我们将热情接待。修改文档的权利 广州致远电子有限公司保留任何时候在不事先声明的情况下对本文档的修改权力。工程技术笔记工程技术笔记 2008 Guangzhou ZHIYUAN Electronics CO.,LTD.16