GD32 低功耗省电模式:Run / Sleep / Deep-sleep / Standby 怎么选
省电的关键是 duty-cycling:睡得越深、主动时间越短,电池越久。本文讲清 GD32 四种状态(Run/Sleep/Deep-sleep/Standby)的差异——什么开着、怎么唤醒、RAM 有没有保留、电流级数,并诚实说明 Standby 会 reset+丢 RAM、µA 数字是 typical 非保证,最后点出低功耗线 GD32L23x「µA 级还保 SRAM」的真正优势。
省电的关键是 duty-cycling
MCU 的省电,关键不是「哪个模式数字最小」,而是 duty-cycling(工作周期化):让 MCU 尽量待在你能容忍的最深睡眠,并把每次醒来的「主动时间」压到最短。平均电流 ≈(主动电流×主动时间 + 睡眠电流×睡眠时间)÷ 周期;因为主动是 mA 级、睡眠是 µA 级,所以「缩短主动 + 睡得更深」对电池寿命的影响远大于其他一切。搞懂这点,再看 GD32 的省电模式怎么选。
四个状态一次看
GD32(主流 F1/F3/F4 系列)有三个省电模式,加上正常 Run 共四种状态。Run:全速跑,电流最高(mA 级)。Sleep:只停 CPU 时钟,外设与时钟照跑、状态全保留,任何中断立刻唤醒(latency 最短、µs 级),但电流仍是 mA 级。Deep-sleep(相当于别家的 Stop):把 1.2V domain 的时钟与 HXTAL/内部 RC/PLL 全关,SRAM 与寄存器仍保留,靠 EXTI 线唤醒(含 EXTI 脚、RTC 闹钟/时间戳、LVD、USART 等),电流降到 µA 级,醒来预设用内部 RC(F 系列 IRC8M)当系统时钟、需重设 PLL。Standby:关掉整个 1.2V domain 与 LDO,电流最低(µA / 次 µA 级),但唤醒最久。(各模式电流/延迟是 typical 值,依电压/温度/时钟/外设而变,以该型号最新 datasheet 为准。)
⚠️ Standby 会 reset + 丢 RAM;数字是 typical
Standby 有两个一定要知道的行为。一、它会「reset + 丢 RAM」:唤醒等于一次上电复位,核心从 0x00000000 重新执行,SRAM 与一般寄存器内容会遗失,只有「备份寄存器(备份域,可由 VBAT 供电)」保留——所以要跨 Standby 保存少量状态,得写进备份寄存器或靠 RTC。二、Standby 的唤醒源有限:通常是 NRST 复位、RTC、独立看门狗复位、以及 WKUP 脚的上升沿(依家族有 4~5 个,WKUP 脚数量因型号而异)。另外提醒:datasheet 上的 µA 数字都是 typical(特性化取得、非量产测试、且条件相依),别当成保证值,设计要以实际条件实测。
GD32L23x 低功耗线的真正优势
如果是电池或能量采集的节点,别只看主流 GD32——GigaDevice 有一条专门的低功耗线 GD32L23x(如 GD32L233,Cortex-M23、40nm 超低功耗)。它把睡眠切得更细(Sleep/Sleep1/Sleep2、Deep-sleep/Deep-sleep1/Deep-sleep2 共 10 种模式),真正的优势不只是 Standby 数字更低,而是它有「µA 级却仍保留 SRAM+寄存器」的模式:以 GD32L233 datasheet 的 typical 值,Deep-sleep 1 约 3.1µA、Deep-sleep 2 约 1.7µA(SRAM 仍保留)、Standby 约 0.44µA;而且有 LPUART、LPTIMER、I²C 地址比对等「低功耗唤醒外设」,能在不完全醒来的情况下反应。对照主流的 GD32E230(M23),Standby 已能到约 1.6µA,但没有「µA 级还保状态」这种模式。这种「醒来预设用 IRC16M」(L23x)也和 F 系列(IRC8M)不同,固件都要在唤醒后重设时钟树。
怎么选 + RTC 唤醒 + 接能量采集
设计与选型:第一,能睡多深就睡多深、主动时间压到最短(duty-cycling 是最大杠杆);用 RTC 唤醒计时器(或 LPTIMER)排程唤醒,别用轮询——GD32 的 RTC 唤醒计时器与闹钟都能经 EXTI 把 Deep-sleep 叫醒。第二,关掉没用到的外设时钟、Run 时也可放慢 HCLK(官方明列这是第一线省电手段,实测可把 Run 电流砍近一半)。第三,唤醒延迟要对得上睡眠深度(Sleep µs 级 / Deep-sleep 约十几 µs / Standby 数十 µs),要单 µs 反应就不能待在 Standby。第四,顾好「醒来后要不要 RAM」:要保 RAM 就停在 Deep-sleep 以上(或 GD32L23x 的 Deep-sleep 1/2);Standby 丢 RAM 要重初始化。料号上:电池/能量采集节点 → GD32L23x(GD32L233)+ Deep-sleep+RTC 唤醒(接得上前一篇能量采集 EM8500 的故事);多为市电/USB 供电、唤醒不频繁 → 主流 GD32E23x/F 系列即可。傑聯特科技是 GigaDevice 授权代理商,低功耗线 GD32L23x 与主流 GD32E/F 全系列都供应;欢迎提供你的电源、唤醒频率、待机电流目标与要保留的状态,我们协助选型并回复样品、规格书与报价。
文中提及的产品
GD32L233 超低功耗 Arm Cortex-M23 MCU
GD32L233 是 GigaDevice 超低功耗 Arm Cortex-M23 MCU,采 40nm ULP 低漏电制程、主频最高 64MHz,Flash 64~256KB、SRAM 16~32KB。深度睡眠电流约 2µA、待机约 0.4µA,并具低功耗计时器/UART、RTC 与 LCD 驱动,适合电池供电的智慧电表、医疗与 IoT 感测。封装 QFN32 / LQFP32/48/64。
GD32E230 Arm Cortex-M23 低功耗 MCU
GD32E230 采用 Arm Cortex-M23 核心,主频最高 72 MHz,主打低成本与低功耗,适合家电控制、小型传感器与成本敏感的消费性产品。提供 TSSOP/QFN/LQFP 多种小型封装。
GD32F303 Arm Cortex-M4 主流 MCU
GD32F303 是 GigaDevice 主流 Arm Cortex-M4 MCU,主频 120MHz(含 DSP/FPU/MPU),Flash 128KB~3MB、SRAM 32~96KB,具 3× 12-bit ADC、2× DAC、丰富计时器与 USB FS/CAN/SDIO。封装 LQFP48/64/100/144,常作为 STM32F1 升级到 M4 或 STM32F303 等级的替代选择。