这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 小黑板——AT32PWR几种低功耗模式说明

共9条 1/1 1 跳转至

小黑板——AT32PWR几种低功耗模式说明

菜鸟
2020-12-13 14:14:40     打赏

以下心得,雅特力科技AT32F403A PWR几种低功耗模式说明

目前主流的单片机均具备低功耗功能,其中包括AT、ST等型号做得基本都差不多,不过几个低功耗模式之间差异比较大,以下主要从我的观点对各个模式做一个对比

1)Sleep<睡眠>

仅CPU 时钟关闭,其他所有外设时钟比如数字的TMR以及模拟的ADC时钟无影响。注意所有外设时钟都没有被关闭,因此外设还能工作

进入Sleep:

在开PWR时钟前提下清SLEEPDEEP后执行WFI或者WFE即可

AT有将进Sleep命令封装到库函数内,因此用户只需要调用PWR_EnterSleepMode(/*参数*/)即可,ST未做库函数封装,需要用户自己写这几句命令

退出Sleep:

WFI进入的Sleep固定通过外设中断+NVIC使能。WFE进的Sleep可通过三种方式唤醒①外设中断+NVIC使能,②外设中断+SEVONPEND,③EXTI事件

2)Stop<停机>

1.2V供电区域的的所有时钟(包括CPU及普通外设)都被停止,SysTick除外,PLL、HSI和HSE RC振荡器的功能被禁止,SRAM和寄存器内容被保留下来。注意外设时钟只是被停止,此时之前被拉高的GPIO还会保持

进入Stop:

在开PWR时钟前提下清PWR_CTR的PDDS位,并设置SLEEPDEEP后执行WFI或者WFE即可

调用库函数PWR_EnterSTOPMode(/*参数*/)

退出Stop:

WFI进入的Stop固定通过EXTI线中断+NVIC使能。WFE进的Stop可通过三种方式唤醒①EXTI中断+NVIC使能,②EXTI中断+SEVONPEND,③EXTI事件

3)Standby<待机>

1.2V供电区域被断电,PLL、HSI和HSE振荡器也被断电,SRAM和寄存器内容丢失,只有备份的寄存器和待机电路维持供电。注意大多数外设被断电,其中用于唤醒的外设除外

进入Standby:

在开PWR时钟前提下清PWR_CTRLSTS中的WUF位,设置PWR_CTR的PDDS位,并设置SLEEPDEEP后执行WFI或者WFE即可

调用库函数PWR_EnterSTANDBYMode()

退出Standby:

此时不在有WFI/WFE进入的唤醒差异,固定唤醒源为WKUP引脚的上升沿、RTC闹钟事件的上升沿、NRST引脚上外部复位、IWDG复位

小黑板:

A.对于Sleep/Stop,通过WFE进入并经外设/EXTI中断+SEVONPEND或者EXTI事件唤醒的唤醒时间是最短的,因为没有时间损失在中断的进入或退出上

B.Stop唤醒后,如果用户不期望系统时钟为HSI的话,就需要进行重新配置,因为在STOP唤醒后,系统时钟会被硬件固定选择为HSI

C.不管什么唤醒源唤醒,Standby的唤醒后,代码是重新从头执行的,因此Standby模式需要慎用

D.Sleep下的电流消耗一般维持在几十或近百mA级别,Stop下的电流消耗一般维持在一或几mA级别,Standby下的电流消耗一般维持在几个uA级别

E.主要用于调试的MCUDBG中的Bit位DBG_SLEEP、DBG_STOP、DBG_STANDBY对低功耗模式存在一定程度的影响,计划后续将对此做一点必要的使用说明





关键词: 雅特力     低功耗     AT32F403A     PWR    

工程师
2020-12-13 17:30:50     打赏
2楼

感谢楼主分享


工程师
2020-12-13 17:34:57     打赏
3楼

学到了  感谢楼主分享


工程师
2020-12-13 17:37:28     打赏
4楼

了解一下


工程师
2020-12-13 17:40:37     打赏
5楼

学习到了


工程师
2020-12-13 17:45:50     打赏
6楼

学习一下


工程师
2020-12-13 17:49:07     打赏
7楼

谢谢分享


工程师
2020-12-13 23:38:02     打赏
8楼

做的非常不错


菜鸟
2020-12-14 09:29:45     打赏
9楼

谢谢各位的肯定


共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]