docs: optimize all module breakdown files with architect-level details

This commit is contained in:
2026-07-09 18:42:00 +08:00
parent 9f54220e27
commit 039029ab20
7 changed files with 183 additions and 160 deletions

View File

@@ -1,28 +1,34 @@
# 模块拆分 - 电源与供电管理 (Docs/50_module-breakdown/mod-power.md)
# 模块拆分 - 极低功耗与电源管理 (Docs/50_module-breakdown/mod-power.md)
本模块负责手环的供电管理以及低功耗休眠/唤醒逻辑
本模块描述手环的低功耗管理、AMOLED 供电 PMIC 控制以及中断睡眠/唤醒时序
## 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 稳定后,重新驱动显示并恢复常规时钟计时。
1. 系统上电时使能 SGM3833 升压芯片,为 OLED 屏提供稳定的显示电源
2. **低功耗决策判定**
当主系统处于非警报状态,且连续 10 秒(`inactivity_timer >= 1000`)无任何按键或无线包事件时,判定系统进入 `STATE_SLEEP` 极低功耗睡眠
3. **彻底切断 PMIC**
为消除 OLED 的静态负压漏电流,休眠前拉低 `SGM_CTRL = 0`,使 SGM3833 彻底断电。
4. **睡眠挂起配置**
使能 `INT2`(外部中断 2接射频接收引脚以及 P0 口引脚电平变化中断,然后将 STC32G 写入 `PCON |= 0x02` 进入停机Power-Down挂起状态关闭主高频振荡时钟全板功耗降至微安级。
5. **安全唤醒重初始化时序**
发生按键或无线信号中断时CPU 瞬间被唤醒。由于升压 PMIC 的输入电容充电及负压稳压需要时间,唤醒后**严禁立即写屏**。必须首先拉高 `SGM_CTRL = 1`,接着**软件强行阻塞延时 50ms**,等电网稳定后,再次完整初始化 RM69310 的寄存器参数,最后恢复待机屏幕重绘。
## 2. 接口与函数设计
---
* `void Power_Init(void)`
1. 配置 `SGM_CTRL`(物理引脚 `P3.4`)为推挽输出模式。
2. 设置 `SGM_CTRL = 1` 开启 SGM3833 OLED 供电芯片
## 2. 接口与函数说明
* `void Power_Init(void)`:配置 `P3.4` (SGM_CTRL) 为推挽输出,默认输出高电平 `SGM_CTRL = 1`
* `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 模式
1. RM69310 屏幕控制器发送关闭显示命令(寄存器 0x28
2. 拉低 `SGM_CTRL = 0` 彻底切断 PMIC
3. 配置并使能按键端口中断与 RF 中断。
4. 执行 `PCON |= 0x02` 挂起 CPU
* `void Wakeup_Restore(void)`
1. 拉高 `SGM_CTRL = 1` 开启 SGM3833 供电芯片
2. 延时约 50ms 等待电压稳定
3. 重新初始化 RM69310 屏幕控制器并恢复正常显示
1. 拉高 `SGM_CTRL = 1` 开启 SGM3833 供电。
2. 执行 `delay_ms(50)` 阻塞式等待电平平稳,过滤冲击电流
3. 调用 `LCD_Init()` 重新对 RM69310 进行整套初始化配置,恢复写屏 GRAM 通道
4. 状态机切回 `STATE_CLOCK` 并置 `Redraw = 1`
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V2 -->