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

2.2 KiB
Raw Blame History

模块拆分 - 极低功耗与电源管理 (Docs/50_module-breakdown/mod-power.md)

本模块描述手环的低功耗管理、AMOLED 供电 PMIC 控制以及中断睡眠/唤醒时序。

1. 模块职责说明

  • 职责范围
    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):配置 P3.4 (SGM_CTRL) 为推挽输出,默认输出高电平 SGM_CTRL = 1
  • void Enter_Low_Power_Sleep(void)
    1. 向 RM69310 屏幕控制器发送关闭显示命令(寄存器 0x28
    2. 拉低 SGM_CTRL = 0 彻底切断 PMIC。
    3. 配置并使能按键端口中断与 RF 中断。
    4. 执行 PCON |= 0x02 挂起 CPU。
  • void Wakeup_Restore(void)
    1. 拉高 SGM_CTRL = 1 开启 SGM3833 供电。
    2. 执行 delay_ms(50) 阻塞式等待电平平稳,过滤冲击电流。
    3. 调用 LCD_Init() 重新对 RM69310 进行整套初始化配置,恢复写屏 GRAM 通道。
    4. 状态机切回 STATE_CLOCK 并置 Redraw = 1