你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32G071评测:PWR

[复制链接]
stm1024 发布时间:2019-1-18 16:57
本帖最后由 stm1024 于 2019-1-19 20:58 编辑

花了点时间走马观花的学习了一下STM32G0系列的电源管理,把要点拎出来和大家交流一下。
G0提供了7种低功耗的方式,具有灵活的电源管理机制,有效降低了电源能耗,这7种低功耗方式分别是:
  • Low-power run(低功耗运行模式)
  • Sleep(睡眠模式)
  • Low-power sleep(低功耗睡眠模式)
  • Stop 0(停止模式0)
  • Stop 1(停止模式1)
  • Standby(待机模式)
  • Shutdown(关机模式)
(如果翻译不对,还望指正)
G0的电源模型如下:
1.png

VDD是主电源,向除VBAT供电之外的所有IO供电,包括Flash、复位、内部温度传感器和内部时钟源等,甚至还有待机电路(包括唤醒逻辑和独立看门狗)。同时VDD也是VDDA,向模拟量外设供电,VREF+是外部参考电压,为ADC或DAC提供参考电压。
VDD的电源经过稳压器后,就变成了VCore,这个是给内部的外设、Flash控制器、SRAM等供电。
VBAT是电池供电,这一部分是为备份域供电,备份域包括了RTC和备份寄存器等。

0.正常运行模式Range1
这可能是绝大部分MCU所采用的模式:
2.png

在此模式下,且系统时钟为64MHz,所有外设都能被供电。
0.正常运行模式Range2
这个模式其实和正常运行模式没太多差别:
3.png

虽然差别不多,但是还是很显著的:此模式下,系统主频为16MHz,Flash不能被擦除或编程。


1. 低功耗运行模式
4.png

此模式下,主频被限制在2MHz,主稳压器被关闭,由低压稳压器供电,所有的外设可被供电,但是,不能通过PLL倍频(都2MHz了……)


2.睡眠模式
睡眠模式同样包括了Range1和Range2:
5.png


6.png

Range1和Range2的主要区别与正常模式下Range1和Range2之间差别类似,即主频、Flash能否被擦除/编程。
睡眠模式主要指的是ARM CortexM0+的内核进入Sleep了。


3.低功耗睡眠模式
低功耗睡眠模式.png

此模式下,主频被限制在2MHz,ARM CortexM0+的内核进入Sleep,Flash也被断电,但外设都可以被供电。


4.停止模式0
STOP0.png

以此模式为分界线,外设和时钟源已经不再是都可以全功能运行,因此也要留意能唤醒事件有哪些了。


5.停止模式1
STOP1.png

停止模式1和停止模式0很类似,但是稳压器用的是低压稳压器,虽然功耗比停止模式0低,但是唤醒时间也会长一些。


6.待机模式
STANDBY.png


ssss.png

停止模式可以保持SRAM或不保持SRAM,不保持SRAM的话,SRAM的时钟就被关闭了,肯定功耗低。


7.关机模式
Shutdown.png

这个最省电了,所有外设全都没电了,内核,Flash、SRAM也没电,可以说,除了备份域,其他都没戏了,所以也只能靠备份域唤醒。


测试
最后,talk is cheap,废话了这么多,直接上代码:
  1. int main(void)
  2. {
  3.   HAL_Init();
  4.   SystemClock_Config();
  5.   __HAL_RCC_PWR_CLK_ENABLE();

  6.   BSP_LED_Init(LED4);
  7.     BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI);
  8.   __HAL_FLASH_PREFETCH_BUFFER_DISABLE();
  9.   RCC->IOPSMENR  = 0x00u;
  10.   RCC->AHBSMENR  = 0x00u;
  11.   RCC->APBSMENR1 = 0x00u;
  12.   RCC->APBSMENR2 = 0x00u;
  13.   while (1)
  14.   {
  15.     HAL_Delay(5000);
  16.     HAL_SuspendTick();   
  17.     HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);
  18.     HAL_ResumeTick();
  19.     BSP_LED_Init(LED4);
  20.   }
  21. }
复制代码
可以通过ST-Link Utility看效果,记得把实时更新打开:
33.png

进入了Halted模式,应该就是Stop模式了。(上面配图有误,更正一下)
按一下蓝色小按钮,唤醒:
66.png

嗯,又跑起来了,灯也一闪一闪的了,不过似乎要比第一次慢(不信就把Reset按一下)?
慢就对了,因为现在用的是低压稳压器,主频被限制在了16MHz。

祝大家周末愉快~
收藏 1 评论1 发布时间:2019-1-18 16:57

举报

1个回答
slotg 回答时间:2019-1-19 15:31:43
很不错的分享

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版