在电源模块电池供电的微控制器应用中,节约能源至关重要。通过减少电流消耗,来减少电池充电次数和更换时间。微控制器软件设计应遵循以下原则,以减少当前的消耗:
利用低能量外围设备
关闭未使用的模块/外围设备
禁用时钟到未使用的模块/外围设备
减小时钟频率
操作电压降低
优化代码
节约能源最有效的方法就是尽可能少的在活动模式下花费时间。
五种定制的能量模式允许微控制器在任何给定的时间内运行在能量最优状态。
所有的外围设备都是基于能源消耗而建立的,并可在各种能源模式下使用。只要有可能,选择适当的外围设备,让它在CPU休眠(或执行其他任务)的同时进行工作。
几个例子:
使用RTC并睡觉,而不是等待某种循环
使用DMA在内存和U(S)之间传输数据
使用低能量传感器接口(LESENSE)监控传感器,而不是唤醒和轮询
在每个微控制器应用程序的任何给定时间,都有不使用的模块/外围设备。把这些关掉,节省能源。这也适用于CPU本身。如果核心是空闲的(例如等待数据接收),则可以关闭它并保存能量。这是不同的EFM32能量模式的主要特征之一。当禁用外围设备时,记得要考虑启动和停止条件。例如,如果完全关闭,ADC需要一些时间预热,才能启动转换。同样,应该允许在进度上进行USART同步传输。这样,接收器的移位寄存器就不会处于不确定状态。
即使一个模块/外围设备被禁用(例如,TIMER0停止),如果它的时钟正在运行,该模块中的各种电路仍然会消耗能量。因此,关闭所有未使用模块的时钟是很重要的。
电流以时钟频率绘制刻度。一般来说,某个任务或外围设备应该以尽可能低的频率运行。
例如,如果一个计时器每隔几毫秒就请求中断,那么它应该被锁定在几个kHz而不是几个MHz。这很容易通过CMU中的预缩放功能实现。同样,对于CPU频率选择的一种方法是,它应该如此低,以至于CPU不会空闲(应该添加一些空白)。然而,在许多情况下,最好快速完成当前任务,然后进入合适的能源模式,直到必须处理新任务。
通过降低工作电压,能耗进一步降低。微控制器的Gecko系列可以在低电压下运行。每个设备的数据表中都有绝对的最小值
优化代码通常会通过提高程序的速度和效率来降低能耗。
一个更快的程序在主动模式中花费的时间更少,而在一个更高效的程序中,每一个任务执行的指令都更少。优化代码的一种简单方法是在发布模式中以最高的优化设置而不是在调试模式下构建它。
CPU活动和外围设备和时钟的可用性在每一种能源模式中都是不同的。下面将简要讨论这些问题。EFR32提供的功能使得配置低能耗的外围设备和在能源模式之间切换变得更加容易。
下面我们来看看几种模式:
这是默认模式。在这种模式下,CPU获取并执行来自flash或RAM的指令,所有外围设备都可能被启用,运行功耗仅为 63 μA/MHz
在睡眠模式下,CPU的时钟被禁用。所有外围设备,以及RAM和flash都是可用的。通过使用外围反射系统(PRS)和DMA,可以实现多个操作的自动执行。例如,计时器可能会在常规间隔触发ADC转换。当转换完成时,结果被DMA移动到RAM。当执行了给定数量的转换时,DMA可能请求并中断来唤醒CPU。通过执行“等待中断(WFI)”来输入睡眠模式或“等待事件(WFE)”指令。使用函数EMU_EnterEM1()进入睡眠模式
在深度睡眠模式下,没有高频振荡器运行,这意味着只有异步和低频外围设备可用。这种模式进一步提高了能源效率,同时仍然允许一系列活动,包括使用:
低能量传感器接口(LESENSE)监控传感器,
液晶显示器驱动液晶显示器,
接收或传输一个字节数据的LEUART,
执行地址匹配检查,
RTC在程序编码后唤醒CPU,
模拟比较器(ACMP),将电压与编程阈值进行比较
一个GPIO来检查I / O线上的转换。
深度睡眠模式是在系统控制寄存器(SCR)中首先设置睡眠深度,然后执行“等待中断(WFI)”或“等待事件(WFE)””指令。使用函数EMU_EnterEM2()进入深度睡眠模式
停止模式与深度睡眠模式不同的是,没有振荡器(ULFRCO或AUXHFRCO除外)正在运行。模块/功能,如果出现在设备上,当适当的时钟源保持活跃时,通常仍然可以在停止模式下使用:
I2C地址
监督
GPIO中断
脉冲计数器(资金)
低能计时器(LETIMER)
低能量传感器接口(LESENSE)
实时计数器和日历(RTCC)
模拟比较器(ACMP)
电压监控(VMON)
超低能耗定时器/计数器(CRYOTIMER)
温度传感器
停止模式与深度睡眠模式相同,只是低频振荡器必须手动禁用。
该功能被称为EFM32的hibernate模式和无线SoC系列1,并使用专用控制寄存器逻辑启用。将0x2、0x3、0x2、0x3、0x2、0x3、0x2、0x2、0x2、0x2、0x2序列写入EMU_EM4CTRL寄存器中的EM4ENTRY位字段,在设置EM4STATE位时将该设备放置在hibernate模式中;否则,该设备像往常一样进入关闭模式。在休眠模式下,大多数外围设备都关闭以减少泄漏功率。有一些选定的外围设备可用。系统内存和寄存器不保留值。保留了GPIO PAD状态和RTCC RAM。从EM4休眠中醒来需要一个重置到系统,返回到EM0活动。休眠模式唤醒是可能的,从相同的关闭模式的权力循环,nRESET,和用户指定的pin源,以及:
RTCC
CRYOTIMER
监控电源的上升或下降(VMON)
测量定义范围之外的温度(TEMPCHANGE)
关闭模式是EFM32系列0,EFM32或无线SoC系列1单片机的最低能量状态。
电源被关闭到大多数设备,包括内部RAM,所有时钟都是禁用的。只有恢复逻辑,如果显式启用GPIO pad状态,则保留。从关闭模式中醒来总是需要重置。当重置从RESETn大头针或通过为这个目的明确启用的一组特定于设备的引脚之一时,关闭模式下的当前绘制可以低至20na。一些设备可以替代基于pin的唤醒;然而,从这些源中醒来需要一个低频振荡器保持激活,增加当前的吸引力。
7 X 24 销售服务热线
4000-330-990深圳办事处柯经理:18218726658 杭州办事处戴经理:17512568697
常州办事处崔经理:15906110783 南京办事处葛经理:17626012283
业务邮箱:support@cdhanzaichips.com
全国销售投诉电话:19934352316
地址:四川省成都市高新西区西区大道199号B5栋(前台座机:028-61543675)
©© 成都太阳集团tcy8722电子科技有限公司【版权所有】 蜀ICP备27697263号-3