Files
stc32g128k/Docs/50_module-breakdown/mod-power.md

29 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 模块拆分 - 电源与供电管理 (Docs/50_module-breakdown/mod-power.md)
本模块负责手环的供电管理以及低功耗休眠/唤醒逻辑。
## 1. 模块职责说明
* **职责范围**
1. 系统初始化时使能 SGM3833 PMIC 供电(拉高 `SGM_CTRL = 1`),使 OLED 屏正常工作。
2. 维护低功耗状态机。当系统检测到连续 10 秒无任何按键操作时,执行关屏、拉低 `SGM_CTRL = 0` 彻底切断 **SGM3833** 供电、挂起外设,使单片机进入 Power-Down停机模式
3. 配置外部中断:将 5 个按键的 GPIO 口和 LR690L 433MHz 芯片的接收中断引脚配置为唤醒中断源,使手环在处于 Power-Down 挂起状态下能被瞬间唤醒。
4. 唤醒后,第一时间拉高 `SGM_CTRL = 1` 恢复 OLED 电源,延时等待 PMIC 稳定后,重新驱动显示并恢复常规时钟计时。
## 2. 接口与函数设计
* `void Power_Init(void)`
1. 配置 `SGM_CTRL`(物理引脚 `P3.4`)为推挽输出模式。
2. 设置 `SGM_CTRL = 1` 开启 SGM3833 OLED 供电芯片。
* `void Enter_Low_Power_Sleep(void)`
1. 发送命令关闭 RM69310 AMOLED 屏幕显示。
2. 拉低 `SGM_CTRL = 0` 关闭 SGM3833 升压/负压芯片。
3. 允许按键引脚中断与 433MHz 射频接收中断。
4. 写入 `PCON |= 0x02`(或 MCU 挂起控制位 `PD = 1`)使 CPU 进入深度睡眠 Power-Down 模式。
* `void Wakeup_Restore(void)`
1. 拉高 `SGM_CTRL = 1` 开启 SGM3833 供电芯片。
2. 延时约 50ms 等待电压稳定。
3. 重新初始化 RM69310 屏幕控制器并恢复正常显示。
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V2 -->