历史上的今天
返回首页

历史上的今天

今天是:2024年11月15日(星期五)

正在发生

2019年11月15日 | stm8低功耗 唤醒

2019-11-15 来源:eefocus

一.MCU耗能因素

现代的MCU一般使用CMOS技术,耗能包括2种,静态消耗和动态消耗。

总电能消耗=静态消耗+动态消耗,

即:IDD=f×IDynamicRun[uA/MHz]+IStatic[uA].

静态消耗:主要是晶体管消耗能量;

因此,电能消耗依赖于:

1.MCU芯片尺寸 或者说晶体管的数目;

2.MCU供电电压 降低电压可以成平方级别地降低电能消耗;

3.时钟频率 可以把时钟频率降低到刚好满足应用需要;

4.外设数目,使能的外设越多,耗能越大;

5.运行模式 合理选择工作模式可以大幅节能,如,全速工作极短时间后进入睡眠模式

二.节能方法

1.关闭不需要使用的外设;

2.所有未使用的引脚必须连接到一个确定的逻辑电平;

3.当有外设必须保持激活时,使用Wait模式来获得低功耗;

4.使用合适的VDD值;

5.尽可能地使用低功耗运行模式;

6.如果不能使用低功耗模式,那就将主频降低到满足应用的最小值;

7.如果可能,使用动态控制I/O引脚的上拉功能。

三.低功耗模式

支持低功耗的MCU一般都有好几种运行模式,以ST公司的STM8L为例,它支持5种低功耗模式:

等待、低功耗运行、低功耗等待、主动停止、停止模式。

表1:STM8L低功耗运行模式:每一种模式的进入方式,节能级别和外设工作要求

模式

等待模式(wait)

低功耗运行

低功耗等待

主动停止

停机模式

入口

WF(I由中断唤醒)

WFE(则由事件唤醒)

软件代码

软件代码+WFE

HALT

HALT

晶振

LSI或LSE

LSI或LSE

LSI或LSE

CPU

外设

关,仅RTC开

唤醒

所有内部和外部中断,复位

所有内部和外部中断,复位,唤醒事件

软件代码,复位

内部和外部事件,复位

外部中断,RTC中断,复位

外部中断,复位

电压调节器

MVR

MVR

ULP

ULP

CLK_ICKCR

ULP

程序执行区

FLASH

FLASH

RAM

RAM

FLASH

FLASH

FLASH+E2

中断

允许

允许

禁止

禁止

允许

允许

中断服务后 返回状态

AL=0:main

AL=1:WFI

WFE

/

/

AL=0:main

AL=1主动停止

AL=0:main

AL=1:停止

事件处理后 返回状态

/

Main

/

低功耗运行

/

/

RAM+寄存器

保留

保留

保留

保留

保留

保留

@3V/25℃

5.9uA

5.4uA

3.3uA

1.0uA

0.4uA

特殊事项

/

/

禁止ADC

/

清除外设悬挂中断标志位

单片机中的WFI/WFE指令

进入低功耗模式的两个指令,

WFI进入则可由任意中断唤醒,WFE进入则由事件唤醒

WFI = wait for interrupt 等待中断,即下一次中断发生前都在此hold住不干活
WFE = wait for event 等待事件,即下一次事件发生前都在此hold住不干活
执行这两条语句后CPU功耗会降低,通常用这两条语句来省电。

表2选择合理的STM8L节能模式

节能要求

应用场合

睡眠时长

唤醒方式

恢复时长

运行模式

苛刻

CPU空闲,等待外部信号唤醒

外部中断

≥2.8us

HALT(停机模式)

苛刻

CPU空闲,等待时钟周期唤醒

RTC周期

≥2.8us

Active-halt活跃停机模式

严格

CPU有持续、微负荷任务运行

/

/

≥2.8us

低功耗运行

严格

CPU短暂等待中断发生

任意中断

等待中断

严格

CPU短暂等待事件发生

注册事件

等待事件

需要

CPU有持续、轻负荷任务运行

/

/

/

调整主频

 

 

简单地来说,就是:

1)wait(等待模式):时钟关闭、外设可用。通过中断、外部中断、复位,能退出本模式。

2)Active-halt(活跃停机模式):时钟关闭、外设关闭、RTC开启。通过RTC中断、外部中断、复位,能退出本模式。

3)Halt(停机模式)(功耗最低):时钟关闭、外设关闭。通过外部中断、复位,能退出本模式。

另外,上图同时说明了默认上电时是运行模式,在运行模式时可通过如下方法降低功耗:

1)降低时钟频率。

2)关闭没用的外设时钟。

3)(香瓜补充)无用的IO口配置为输出低。

四、调试低功耗的调试一般分为以下几个步骤:

1、休眠模式的设置;2、I/O口状态的配置;3、硬件电路的调试;4、各个功能之间的工作间隙。

 

五.进入低功耗模式与低功耗唤醒流程的具体步骤?

答:

1)进入低功耗模式的流程

①关闭外设时钟。

②所有IO设置为输出低(注意低电平使能的得设置为输出高)。

③初始化中断口的IO。

④时钟频率降至最低(2M)。

⑤打开中断总开关。

⑥调用停机模式的函数。

 

2)低功耗唤醒的流程

①初始化系统时钟。

②初始化用到的外设。

 

所有中断允许处理器从等待模式退出。只有重置或事件允许处理器从低功率等待模式退出。这种模式在低功率运行模式下执行WFE指令。一个事件的唤醒使系统回到低功率运行模式(参见更多细节)。只有外部和其他特定的中断允许处理器从停止和active暂停模式退出(请参阅中断,并在中断向量表中从主动暂停中唤醒。数据表)。当从停止模式中醒来时,当几个未决中断出现时,第一个中断中断服务只能是一种中断模式功能的中断。这是选择通过图30所示的决策过程。如果最高优先级的中断不能从停止模式唤醒设备,它将会被服务。如果有任何内部或外部中断(例如,在计时器中)发生中断指令正在执行,停止指令已经完成,但是中断调用了在停止指令完成后立即启动唤醒进程。在这种情况下MCU实际上是从暂停模式唤醒到运行模式,并有相应的延迟在数据表中指定的tWUH。在执行停止指令之前,用户程序必须清除任何未决的外围设备中断(在相应的外围配置中清除未决的中断寄存器)。否则,停止指令就不会执行,程序执行也不会执行仍在继续。

 

MCU激活级别是通过在cfggcr寄存器中编程AL位来配置的(参见全局配置寄存器(cfggcr))。这个钻头用于控制MCU的低功率模式。在非常低的功率应用中,MCU大部分时间都在wfi/暂停模式下,并被唤醒(通过中断)特定的时刻,以执行特定的任务。其中一些重复的任务是足够短的时间可以直接在ISR中进行处理(中断服务程序),而不是继续回到主程序。为了解决这个问题,你可以在进入低之前设置AL位电源模式(通过执行wfi/停止指令)。因此,中断例程使设备恢复到低功率模式。然后中断例程直接返回到低功耗模式。由于寄存器的事实,运行时/isr的执行减少了上下文只在第一次中断时保存。因此,所有的操作都可以在非常简单的应用程序中在ISR中执行。在更复杂的,中断例程可以通过简单的重置重新启动主程序美联。例如,一个应用程序可能需要被自动唤醒单元(AWU)唤醒。每隔50毫秒,就可以检查一些针/传感器/按钮的状态。大部分的时间,因为这些大头针不活跃,MCU可以在不运行的情况下返回到低功率模式主程序。如果其中一个大头针是活动的,ISR就会决定启动主程序通过重置AL位。

推荐阅读

史海拾趣

Digital View公司的发展小趣事

随着数字化技术的不断进步和应用领域的不断扩大,Digital View公司也加快了数字化转型和升级的步伐。公司加大了对云计算、大数据、人工智能等前沿技术的研发和应用力度,推出了一系列智能化、数字化的产品和服务。这些产品和服务不仅提高了客户的运营效率和管理水平,还为公司带来了新的增长点。

Grayhill公司的发展小趣事
记录测试数据并进行分析,以便对电路进行进一步的优化和改进。
宜源科技(ETERNAL)公司的发展小趣事

随着国内市场的饱和,宜源科技公司积极寻求海外市场的发展机会。公司加强与国际知名企业的合作,共同开发新产品,拓展市场份额。同时,宜源科技还积极参加国际展会和论坛,提升品牌知名度和影响力。通过不懈的努力,宜源科技的产品已经成功进入多个国家和地区,实现了国际化发展。

Auris公司的发展小趣事

在Auris公司的发展历程中,2017年夏天的一次收购事件具有重要意义。Auris以8000万美元的价格收购了Hansen Medical,这是一家专门开发工具来操控导管的公司。这次收购不仅增强了Auris在手术机器人领域的技术实力,也为其后续的产品研发和市场拓展提供了更多可能性。

ATOP_Technologies公司的发展小趣事

随着技术的不断进步,ATOP Technologies意识到要想在激烈的市场竞争中保持领先地位,必须不断进行技术创新和产品升级。因此,公司加大了在研发方面的投入,积极引进高端人才,加强与高校和研究机构的合作。经过多年的努力,ATOP Technologies成功开发出了一系列具有自主知识产权的工业自动化产品,并在市场上取得了良好的口碑。

Esterline Technologies Corporation公司的发展小趣事

在追求技术创新的同时,ATOP Technologies也始终注重品质管理和品牌建设。公司通过了ISO-9001认证,从产品的研发设计到生产,所有的流程都严格遵循最佳品质原则。此外,ATOP Technologies还注重品牌形象的塑造和推广,通过参加行业活动、举办技术研讨会等方式,不断提升品牌知名度和影响力。

问答坊 | AI 解惑

单片机应用系统断电时的数据保护方法

 在测量、控制等领域的应用中,常要求单片机内部和外部RAM中的数据在电源掉电时不丢失,重新加电时,RAM中的数据能够保存完好,这就要求对单片机系统加接掉电保护电路。掉电保护通常可采用以下三种方法:一是加接不间断电源,让整个系统在掉电 ...…

查看全部问答>

编译过程出现这个错误什么原因??如何修改??吃饭不下

  <汇编器提示> COPYRIGHT MANLEY ELECTRONICS CO., LTD. 2001-2006    <汇编器提示> ASSEMBLY COMPLETE.  0 WARNING(S), 1 ERROR(S)       ERROR #14 IN 560 (VCJPDH.ASM, LINE 560): TAR ...…

查看全部问答>

超高亮度LED的应用示例

replyreload += \',\' + 768280;Timson,如果您要查看本帖隐藏内容请回复…

查看全部问答>

版主,我有问题请教:

版主,我有问题请教:     我用ST—LINK在线调试芯片,程序烧录进MCU一次后,再次连接时,MCU与ST—LINK链接不上!以后一直连不上。连续两个板子都是一样的情况。 STVD报错:×× Connection error(usb://usb):gdi-error[40701]pt ...…

查看全部问答>

关于库函数的使用

本人想利用按键作为外部中断,通过中断服务程序打开定时器,使用定时器TIM1更新中断。再次发生外部中断时关闭定时器中断。按键触发的是EXTI线[15:10]中断,优先级低于TIM1更新中断,在设置优先级是使用库函数,在网上搜到了一段,如下:   &n ...…

查看全部问答>

MSP430F541x, MSP430F543x ,MSP430F543xA,MSP430F541x,MSP430F55xxA官方示例代码

附件中代码是TI提供的MSP430F541x, MSP430F543x ,MSP430F543xA,MSP430F541xA, MSP430F55xx 官方示例代码,可以作为MSP430使用过程中最可靠的代码参考 [ 本帖最后由 wstt 于 2012-5-31 20:52 编辑 ]…

查看全部问答>

ARM7 数据位移动

请问各位大神,ARM7 有没有好的方法时数组里的各个数据分别移动一位 并让第二个的第0位接到第一位的第七位上 依次类推 数组好长。…

查看全部问答>

CLKOUT的圆是什么?

CLKOUT的那个圆点是什么,在PCB上生成什么,在别人电路图看到的,已经是pdf看不到原型. …

查看全部问答>

IIHZ/IILZ是什么意思

看74LVC4245A资料,里面有IIHZ/IILZ,请问是什么意思?…

查看全部问答>

高性能数据采集系统增强数字X射线和MRI的图像

高性能数据采集系统增强数字X射线和MRI的图像数字X射线 (DXR)、磁共振成像和其他医疗设备要求数据采集系统具备小型、高性能、低功耗等特性,以满足竞争市场上医生、病人和制造商的需求。本文展示一款高精度、低功耗信号链,可解决多通道应用(如数 ...…

查看全部问答>