基本信息
文件名称:Microchip 系列:SAM E 系列_(13).SAM E系列的低功耗模式.docx
文件大小:22.31 KB
总页数:17 页
更新时间:2025-06-12
总字数:约8.16千字
文档摘要

PAGE1

PAGE1

SAME系列的低功耗模式

低功耗模式概述

低功耗模式是SAME系列单片机中的一项重要功能,旨在通过减少功耗来延长电池寿命,提高系统的能效。这些模式在不同的应用场景中非常有用,尤其是在那些对功耗有严格要求的设备中,如传感器节点、便携式医疗设备和物联网设备等。SAME系列单片机提供了多种低功耗模式,每种模式都有其特定的功耗特性和唤醒机制。

低功耗模式的分类

SAME系列单片机的低功耗模式主要分为以下几种:

空闲模式(IdleMode)

掉电模式(Power-downMode)

深度掉电模式(DeepPower-downMode)

低功耗待机模式(LowPowerStandbyMode)

每种模式的功耗和唤醒时间各不相同,选择合适的低功耗模式需要根据具体的应用需求来决定。

空闲模式(IdleMode)

原理

空闲模式是最简单的低功耗模式之一。在这种模式下,CPU停止运行,但外设和中断系统仍然保持活动状态。这意味着在空闲模式下,单片机可以继续处理外设事件,如ADC采样、UART通信等。当有中断发生时,CPU会立即从空闲模式中唤醒并处理中断。

配置方法

在SAME系列单片机中,可以通过设置PM(PowerManagement)模块的相应寄存器来进入空闲模式。具体步骤如下:

配置PM模块:

设置PM_SLEEPCFG寄存器,选择进入空闲模式。

设置PM_SLEEP寄存器,使能进入低功耗模式。

进入空闲模式:

使用__WFI()(WaitForInterrupt)函数进入空闲模式。

代码示例

以下是一个简单的示例,展示如何配置并进入空闲模式:

#includesam.h

voidenter_idle_mode(void){

//配置PM模块进入空闲模式

PM-SLEEPCFG.bit.SLEEPMODE=SLEEPCFG_SLEEPMODE_IDLE_Val;//选择空闲模式

PM-INTENSET.bit.SLEEPREQ=1;//使能低功耗模式请求

//进入空闲模式

__WFI();//WaitForInterrupt

}

intmain(void){

//初始化系统

SystemInit();

//配置外设(例如UART)

//假设已经配置好UART

while(1){

//执行某些任务

//例如,读取传感器数据并发送

//进入空闲模式

enter_idle_mode();

}

}

详细说明

PM-SLEEPCFG.bit.SLEEPMODE:设置为SLEEPCFG_SLEEPMODE_IDLE_Val,表示选择空闲模式。

PM-INTENSET.bit.SLEEPREQ:使能低功耗模式请求,允许进入低功耗模式。

__WFI():这是一个内核提供的函数,用于等待中断。调用此函数后,CPU会进入空闲模式,直到有中断发生才会唤醒。

掉电模式(Power-downMode)

原理

掉电模式是一种更深层次的低功耗模式。在这种模式下,不仅CPU停止运行,大部分外设也停止工作,但保留RAM中的数据。掉电模式的功耗比空闲模式更低,但唤醒时间更长。掉电模式通常用于那些不需要频繁唤醒的应用场景。

配置方法

在SAME系列单片机中,可以通过设置PM模块的相应寄存器来进入掉电模式。具体步骤如下:

配置PM模块:

设置PM_SLEEPCFG寄存器,选择进入掉电模式。

设置PM_SLEEP寄存器,使能进入低功耗模式。

进入掉电模式:

使用__WFI()(WaitForInterrupt)函数进入掉电模式。

代码示例

以下是一个简单的示例,展示如何配置并进入掉电模式:

#includesam.h

voidenter_power_down_mode(void){

//配置PM模块进入掉电模式

PM-SLEEPCFG.bit.SLEEPMODE=SLEEPCFG_SLEEPMODE_PDWNLPM_Val;//选择掉电模式

PM-INTENSET.bit.SLEEPREQ=1;//使能低功耗模式请求

//进入掉电模式

__WFI();//WaitForInterrupt

}

intmain(void){

//初始化系统

SystemInit();

//配置外设(例如RTC)