GD32待机和深度睡眠模式的区别
对比项深度睡眠 (Deep Sleep)待机 (Standby)1.2V域供电保留关闭SRAM/寄存器保留丢失(除备份SRAM)RTC运行可选(需配置LXTAL)一般保留(备份域供电)外设状态可通过寄存器保留状态唤醒后恢复全部重启,需软件重新初始化唤醒后执行点从睡眠返回点继续执行系统复位,从main()重新启动功耗级别中最低唤醒速度快(µs级)慢(ms级)典型场景飞控系统待机、周期唤醒传感器无人机
非常好的问题 👏,你对GD32的低功耗理解已经进入关键点了——
“Deep-sleep vs Standby 模式到底差多少功耗,哪个最省电?”
下面我给你一个工程师视角的深入分析和功耗对比 👇
🧩 一、三种模式功耗对比(从高到低)
| 模式 | CPU状态 | 1.2V域 | SRAM/寄存器 | 时钟状态 | 唤醒时间 | 功耗等级 | 典型应用 |
|---|---|---|---|---|---|---|---|
| 睡眠模式 (Sleep) | 停止CPU,外设运行 | 保持供电 | 保留 | 时钟不变 | 最短 | 💡最高功耗 | 等待中断,系统空闲 |
| 深度睡眠模式 (Deep-sleep) | CPU停止,主时钟关闭 | 保持供电 | 保留 | IRC16M/HXTAL/PLL关闭 | 中等 | ⚙️中等功耗 | 低功耗运行,快速唤醒 |
| 待机模式 (Standby) | 完全掉电 | 断电(仅备份域供电) | 丢失 | 全部关闭 | 最长 | 🔋最低功耗 | “关机”状态、RTC唤醒 |
⚡ 二、功耗差异分析(定量估计)
下表为 GD32F4系列(Cortex-M4, 240MHz)典型估算值
实际功耗依硬件设计、外设开关、IO状态、LDO配置而异。
| 模式 | 典型功耗 | 唤醒时间 |
|---|---|---|
| Sleep Mode | ≈ 2~5 mA(CPU停,外设仍工作) | < 1 µs |
| Deep Sleep Mode | ≈ 100~300 µA(LDO低功耗,SRAM保持) | 5~50 µs |
| Standby Mode | ≈ 1~5 µA(仅RTC域供电) | 1~10 ms |
🔍 三、核心区别总结
| 对比项 | 深度睡眠 (Deep Sleep) | 待机 (Standby) |
|---|---|---|
| 1.2V域供电 | 保留 | 关闭 |
| SRAM/寄存器 | 保留 | 丢失(除备份SRAM) |
| RTC运行 | 可选(需配置LXTAL) | 一般保留(备份域供电) |
| 外设状态 | 可通过寄存器保留状态唤醒后恢复 | 全部重启,需软件重新初始化 |
| 唤醒后执行点 | 从睡眠返回点继续执行 | 系统复位,从main()重新启动 |
| 功耗级别 | 中 | 最低 |
| 唤醒速度 | 快(µs级) | 慢(ms级) |
| 典型场景 | 飞控系统待机、周期唤醒传感器 | 无人机“关机”状态、RTC定时启动 |
⚙️ 四、在无人机系统中的选择建议
| 需求 | 推荐模式 | 理由 |
|---|---|---|
| 飞行中空闲等待(如任务调度空闲) | Sleep | 外设继续运行,快速唤醒 |
| 停机但保持任务/数据状态(如地面待机、定期唤醒检测) | Deep Sleep | SRAM保持、唤醒快、功耗低 |
| 完全关机状态(例如关机储存电池) | Standby | 最低功耗,仅RTC运行 |
🧠 五、一句话总结
功耗排序:Sleep > Deep Sleep ≫ Standby
唤醒速度排序:Standby ≪ Deep Sleep < Sleep所以:
- 想“低功耗运行”→ Deep Sleep
- 想“彻底关机省电”→ Standby
要不要我帮你画一张 三种模式的对比表 + 功耗流向图(标出1.2V域、备份域、外设电源状态)?
这样你能一眼看出 Deep Sleep 和 Standby 在硬件电源分区上的差异。
非常好的追问 👍,这个问题其实是所有做低功耗设计的人最关心的之一。
一句话先说结论:
💡 差别非常大!
不管是功耗、寄存器保留、唤醒机制、系统恢复方式,深度睡眠(Deep-sleep)和待机(Standby)都属于完全不同级别的低功耗模式。
🧩 一、总体对比:不是“更省一点”,而是“完全不同层级”
| 项目 | 深度睡眠 (Deep-sleep) | 待机 (Standby) | 差距说明 |
|---|---|---|---|
| 1.2V内核域供电 | ✅ 保持供电 | ❌ 断电 | ⚠️ 这是根本性差别:Standby彻底断掉核心电源 |
| SRAM/寄存器 | ✅ 全部保留 | ❌ 全部丢失(除备份域) | Standby相当于“掉电重启” |
| 时钟状态 | 主时钟(PLL/HXTAL)关闭,但IRC16M可唤醒 | 所有主时钟关闭,仅LXTAL或内部低速时钟可保留 | Standby下,几乎只有RTC域在运行 |
| 唤醒后执行位置 | 从睡眠指令后继续运行 | 从0x00000000重新启动(复位启动) |
Deep-sleep是暂停,Standby是重新开机 |
| 功耗等级 | 中低(约100~300 µA) | 极低(约1~5 µA) | 相差一个数量级以上 |
| 唤醒时间 | 快(几微秒到几十微秒) | 慢(毫秒级,需要上电复位) | 约100倍差距 |
| 唤醒源 | EXTI事件/中断 | WKUP引脚、RTC、NRST、看门狗 | Standby唤醒源更少、更硬件级 |
| 系统状态恢复 | 内存数据、外设寄存器仍在 | 全部丢失,需重新初始化系统 | Standby无法“继续执行”上次任务 |
| 典型用途 | MCU周期性休眠、定时唤醒执行任务 | 完全关机/掉电保存、RTC定时唤醒 | 深度睡眠用于“低功耗运行”,待机用于“断电保存” |
🔋 二、功耗差距到底有多大?
以 GD32F450 为例(典型值):
| 模式 | 功耗(典型) | 差距 |
|---|---|---|
| 深度睡眠模式(LDO低功耗) | ≈ 150~300 µA | — |
| 待机模式(仅RTC运行) | ≈ 2~5 µA | 🔻 低约 50~100 倍 |
也就是说:
在同样的电池下,进入待机模式的系统理论上可以多待机 数十倍时间。
⚙️ 三、工程上的决策思路
| 需求 | 推荐模式 | 理由 |
|---|---|---|
| 想要“低功耗运行”——保留RAM状态、快速唤醒 | ✅ 深度睡眠模式 | 唤醒快,不丢数据 |
| 想要“真正关机”——掉电保存、RTC唤醒 | ✅ 待机模式 | 最低功耗,但系统重启 |
| 想让系统休眠后继续原任务运行(如FreeRTOS唤醒恢复) | ✅ 深度睡眠 | Standby会复位系统 |
| 想让电池能放几个月不耗尽 | ✅ 待机 | 极低电流,仅RTC运行 |
🧠 四、形象比喻
| 模式 | 比喻 |
|---|---|
| 睡眠模式 | CPU“闭眼休息”,外设还在转 |
| 深度睡眠模式 | CPU“冬眠”,身体机能停了,但生命维持系统(供电)还在 |
| 待机模式 | 完全“断电关机”,只剩下闹钟能把你叫醒 |
✅ 五、结论总结
| 项目 | 深度睡眠 | 待机 |
|---|---|---|
| 功耗 | 中等(百微安级) | 极低(微安级) |
| 唤醒 | 快(µs级) | 慢(ms级) |
| RAM保留 | ✅ 是 | ❌ 否 |
| 系统状态 | 保持 | 丢失 |
| RTC运行 | 可选 | 通常保持 |
| 是否复位 | 否 | 是 |
| 电源域 | 全保留 | 仅备份域保留 |
| 适用场景 | 周期性休眠、快速唤醒任务 | 长时间关机、RTC唤醒启动 |
🔹总结一句话:
深度睡眠是“低功耗运行”状态,而待机是“彻底关机”状态。
两者差距非常大——不仅功耗差了几十倍,系统行为也完全不同。
如果你愿意,我可以帮你画一张图(显示Deep-sleep和Standby时 1.2V域、备份域、外设电源状态的区别),
一眼就能看出它们电源级别的不同,要不要我帮你画?

更多推荐



所有评论(0)