本帖最后由 stm1024 于 2019-1-19 20:58 编辑 花了点时间走马观花的学习了一下STM32G0系列的电源管理,把要点拎出来和大家交流一下。 G0提供了7种低功耗的方式,具有灵活的电源管理机制,有效降低了电源能耗,这7种低功耗方式分别是:
G0的电源模型如下: VDD是主电源,向除VBAT供电之外的所有IO供电,包括Flash、复位、内部温度传感器和内部时钟源等,甚至还有待机电路(包括唤醒逻辑和独立看门狗)。同时VDD也是VDDA,向模拟量外设供电,VREF+是外部参考电压,为ADC或DAC提供参考电压。 VDD的电源经过稳压器后,就变成了VCore,这个是给内部的外设、Flash控制器、SRAM等供电。 VBAT是电池供电,这一部分是为备份域供电,备份域包括了RTC和备份寄存器等。 a7 ] F/ e K 0.正常运行模式Range1$ t" v5 B l/ W& A* |: s+ C# ^ 这可能是绝大部分MCU所采用的模式:' F9 z5 _4 B' q9 u+ q+ c 在此模式下,且系统时钟为64MHz,所有外设都能被供电。 i) e7 n: s6 }8 F6 e 0.正常运行模式Range2 这个模式其实和正常运行模式没太多差别:* l% M8 V7 L/ ~( ?7 T' ]) a 虽然差别不多,但是还是很显著的:此模式下,系统主频为16MHz,Flash不能被擦除或编程。 # k5 W0 E4 F# J' \. Y 1. 低功耗运行模式 此模式下,主频被限制在2MHz,主稳压器被关闭,由低压稳压器供电,所有的外设可被供电,但是,不能通过PLL倍频(都2MHz了……)& C7 \" Q% m5 [7 D3 K' ? 8 `2 T$ j, ~, r8 k 2.睡眠模式8 [; q$ m4 T% l 睡眠模式同样包括了Range1和Range2:6 Y5 g8 v2 x% w) {/ x1 {2 R$ X ; X( f' [8 r+ Z' \ Range1和Range2的主要区别与正常模式下Range1和Range2之间差别类似,即主频、Flash能否被擦除/编程。# |! i7 s4 w: w3 @* s& O2 m1 ?& S. i 睡眠模式主要指的是ARM CortexM0+的内核进入Sleep了。6 z; l! K/ T: Y 3.低功耗睡眠模式 此模式下,主频被限制在2MHz,ARM CortexM0+的内核进入Sleep,Flash也被断电,但外设都可以被供电。 4.停止模式08 b. d4 h+ _* V; Q 以此模式为分界线,外设和时钟源已经不再是都可以全功能运行,因此也要留意能唤醒事件有哪些了。 5.停止模式1: _- _* n' P6 e! B/ A& H, [ 停止模式1和停止模式0很类似,但是稳压器用的是低压稳压器,虽然功耗比停止模式0低,但是唤醒时间也会长一些。 2 P1 P3 c- e& m3 y! M( U& l+ c 6.待机模式; g( D6 Q$ i0 j* U ; q; |- N3 i8 x( c# y/ X 停止模式可以保持SRAM或不保持SRAM,不保持SRAM的话,SRAM的时钟就被关闭了,肯定功耗低。 - x: C( h$ W* y! ` . h, B: d+ C% a2 f) c 7.关机模式 |( [) E2 T. Z+ F 这个最省电了,所有外设全都没电了,内核,Flash、SRAM也没电,可以说,除了备份域,其他都没戏了,所以也只能靠备份域唤醒。 j/ \! L5 j; d* s, E/ X Y) W " o# E9 X( a2 p( [% S2 X 测试 最后,talk is cheap,废话了这么多,直接上代码:7 @ x9 S, g* H* c
进入了Halted模式,应该就是Stop模式了。(上面配图有误,更正一下)5 {/ |+ `3 N* v3 ?' R) b# k% L 按一下蓝色小按钮,唤醒:/ ?( L; }/ w: x/ d$ E 嗯,又跑起来了,灯也一闪一闪的了,不过似乎要比第一次慢(不信就把Reset按一下)? 慢就对了,因为现在用的是低压稳压器,主频被限制在了16MHz。& ], E' N! G! b: o7 v/ y: J2 } 6 L8 x7 w( G7 g+ c6 q+ N; J* U% ?7 v( q 祝大家周末愉快~ |
很不错的分享 |
STM32固件库分享,超全系列整理
STM32G030F6P6基于HAL库模拟SPI驱动1.8寸TFT LCD屏幕
STM32的CAN FD位定时设置注意事项
基于STM32将移植 SBSFU 到 STM32G070过程分享
基于STM32G030 RAM不够用经验分享
STM32G070在OLED上移植U8G2单色GUI
【经验分享】STM32 IAP+Ymodem功能实现(参考官方代码)
【经验分享】STM32的SPI问题
【经验分享】STM32 的加密实现
STM32G070—使用platformio+arduino