0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RK3588系统待机:从DTS配置到低功耗设计全攻略

jf_44130326 来源:Linux1024 2026-04-17 16:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

RK3588作为瑞芯微当前旗舰级通用SoC,其系统待机功能完全由Trust固件(BL31)全权处理,配置逻辑与其他平台(包括瑞芯微其他芯片)无任何关联性。本文,从基础原理、核心配置、日志解读到5大典型场景落地,全面拆解RK3588待机开发的所有要点,帮你快速实现最优低功耗设计。

一、RK3588系统待机基础认知

1.1核心实现原理

RK3588所有带Trust的平台,系统待机的核心逻辑都运行在BL31固件中,内核仅通过DTS节点将配置参数传递给Trust。标准待机流程会执行以下操作:

关闭非必要电源域、模块IP时钟PLL

DDR进入自刷新模式

系统总线切换到32K低速时钟

按需断电vdd_armvdd_log等核心电源域

配置并使能唤醒源

1.2关键驱动与头文件

所有配置宏定义和驱动代码均已集成到内核,无需额外移植:

# 核心驱动./drivers/soc/rockchip/rockchip_pm_config.c./drivers/firmware/rockchip_sip.c# 所有配置宏定义头文件./include/dt-bindings/suspend/rockchip-rk3588.h

1.3基础DTS节点结构

所有待机配置都集中在rockchip-suspend节点下,这是唯一与Trust交互的配置入口:

rockchip_suspend: rockchip-suspend {  compatible ="rockchip,pm-rk3588";  status ="okay";  rockchip,sleep-debug-en = <1>;//休眠日志开关  rockchip,sleep-mode-config = <...>;//常规休眠模式配置  rockchip,wakeup-config = <...>;//唤醒源配置  // 其他可选配置  rockchip,sleep-io-ret-config = <...>;//IO电平保持  rockchip,virtual-poweroff = <1>;//假关机模式};

二、核心DTS配置详解(重点)

2.1常规休眠模式配置(功耗分级)

通过rockchip,sleep-mode-config配置不同的断电等级,功耗从高到低排序,所有断电模式均需硬件电路支持对应电源域的独立控制:

配置宏

断电范围

适用场景

注意事项

RKPM_SLP_ARMOFF

vdd_arm断电

对功耗要求不高,需保留大部分外设

基础休眠模式

RKPM_SLP_ARMOFF_DDRPD

vdd_arm + DDR控制器断电

平衡功耗与唤醒速度

DDR仍处于自刷新状态

RKPM_SLP_ARMOFF_LOGOFF

vdd_arm + vdd_log断电

最低功耗模式

PMUGPIO0域工作

RKPM_SLP_ARMOFF_PMUOFF

vdd_arm + vdd_log + PMU1断电

极致低功耗

极少使用,唤醒源受限

时钟配套配置

RKPM_SLP_PMU_PMUALIVE_32K:休眠时使用32K时钟作为系统时钟(必选)

RKPM_SLP_PMU_DIS_OSC:关闭24M晶振(最低功耗必选)

RKPM_SLP_32K_EXT:使用外部32K时钟(默认内部32K

关键注意:USBSDIO等外设唤醒时,不能配置RKPM_SLP_ARMOFF_LOGOFFRKPM_SLP_PMU_DIS_OSC,否则外设电源和时钟会被关闭,无法唤醒。

2.2唤醒源配置(优先级与限制)

通过rockchip,wakeup-config配置唤醒源,不同唤醒源的可用性和功耗差异极大:

首选唤醒源:RKPM_GPIO_WKUP_EN

仅支持GPIO0引脚,中断信号直接送往PMU状态机,不经过GIC

支持vdd_log断电模式,功耗最低

硬件设计建议:所有唤醒源优先布局在GPIO0

次选唤醒源:RKPM_CPU0_WKUP_EN

支持所有通过enable_irq_wake()注册到GIC的可唤醒中断

适用唤醒源数量最多,但管理权分散到各个内核模块,容易出现意外唤醒

必须保留vdd_log24M晶振供电

专用唤醒源

配置宏

功能

限制条件

RKPM_UART0_WKUP_EN

UART0串口唤醒

UART0支持,需保留24M晶振

RKPM_USB_WKUP_EN

USB设备唤醒

需保留vdd_log24M晶振

RKPM_VAD_WKUP_EN

语音唤醒

需保留VAD模块供电

RKPM_SDMMC/SDIO_WKUP_EN

SD/SDIO设备唤醒

需保留对应模块供电

调试专用唤醒源

RKPM_TIME_OUT_WKUP_ENPMU内部1秒自动唤醒,仅用于基础休眠功能测试

2.3 Debug调试配置

rockchip,sleep-mode-config = < RKPM_SLP_TIME_OUT_WKUP// 1秒自动唤醒,测试休眠流程 RKPM_SLP_PMU_DBG// PMU状态机波形输出(GPIO0_A5引脚)>;rockchip,sleep-debug-en = <1>;// 打开Trust休眠日志

2.4 IO电平保持配置

vdd_log断电的场景下,若需维持某个IO的电平状态,可配置对应IO域的保持功能:

rockchip,sleep-io-ret-config = < RKPM_VCCIO1_RET_EN// 保持VCCIO1域所有IO电平 RKPM_EMMCIO_RET_EN// 保持EMMC IO域电平>;

注意:必须确保对应IO域的电源在休眠时不断电,否则电平保持无效。

2.5假关机模式配置

部分产品关机时无法物理断电,可使用休眠模拟关机,实现快速开机和低功耗:

rockchip,virtual-poweroff = <1>;// 开启假关机模式rockchip,virtual-poweroff-irqs = <123456>;// 配置关机唤醒中断号

开启后,系统执行关机流程时会自动进入休眠,收到指定中断后恢复开机。

三、休眠唤醒日志解读

打开rockchip,sleep-debug-en = <1>后,Trust会输出详细的休眠唤醒日志,这是调试的核心依据。

3.1休眠日志关键信息

# BL31固件版本INFO: BL31: v2.3():v2.3-264-g378cb8595:derrick.huang# 休眠模式配置与次数INFO: enter: cfg=0x5000604, sleeptimes:1INFO: armoff_ddrpdINFO: pmu_pmualive_32kINFO: pmu_dis_osc# GPIO中断配置状态INFO: GPIO0_INTEN:0xffff0xffff0xff7f0xefff0x00xc81e142d# 关键寄存器状态INFO: PMU1_PWR_CON(0x1) PMU1_CRU_PWR_CON(0x23)

3.2唤醒日志关键信息

# 唤醒流程步骤012376543edcba2# 唤醒源识别INFO: gpio0_a7INFO: wake up status: 0x100INFO: GPIO0 interrupt wakeupINFO: GPIO0: 0x80

通过wake up status和具体的唤醒源信息,可快速定位意外唤醒问题。

四、5大典型场景配置案例

4.1最低功耗:Logic断电模式(GPIO0唤醒)

适用于仅需按键、触摸等GPIO0唤醒的产品,待机功耗最低:

rockchip_suspend: rockchip-suspend {  compatible ="rockchip,pm-rk3588";  status ="okay";  rockchip,sleep-debug-en = <1>;  rockchip,sleep-mode-config = <    RKPM_SLP_ARMOFF_LOGOFF    RKPM_SLP_PMU_PMUALIVE_32K    RKPM_SLP_PMU_DIS_OSC    RKPM_SLP_32K_EXT  >;  rockchip,wakeup-config = ;};

4.2串口唤醒:UART0唤醒配置

适用于需要串口调试或串口外设唤醒的产品,UART0是唯一支持logic断电的串口:

rockchip_suspend: rockchip-suspend {  compatible ="rockchip,pm-rk3588";  status ="okay";  rockchip,sleep-debug-en = <1>;  rockchip,sleep-mode-config = ;  rockchip,wakeup-config = <    RKPM_GPIO_WKUP_EN    RKPM_UART0_WKUP_EN  >;};

注意:UART0唤醒需要24M晶振保持工作,不能配置RKPM_SLP_PMU_DIS_OSC

4.3红外唤醒:PWM唤醒配置

适用于带红外遥控的产品:

rockchip_suspend: rockchip-suspend {  compatible ="rockchip,pm-rk3588";  status ="okay";  rockchip,sleep-debug-en = <1>;  rockchip,sleep-mode-config = ;  rockchip,wakeup-config = <    RKPM_CPU0_WKUP_EN    RKPM_GPIO_WKUP_EN  >;};

注意:PWM唤醒不能关闭vdd_log24M晶振。

4.4智能唤醒:MCU唤醒配置

适用于需要PMU MCU进行中断过滤、按键消抖等预处理的产品:

rockchip_suspend: rockchip-suspend {  compatible ="rockchip,pm-rk3588";  status ="okay";  rockchip,sleep-debug-en = <1>;  rockchip,sleep-mode-config = ;  rockchip,wakeup-config = <    RKPM_GPIO_WKUP_EN    RKPM_PMUMCU_CEC_WKUP_EN  >;};

4.5通用GPIO唤醒:GPIO1~4唤醒配置

适用于唤醒源无法布局在GPIO0组的情况:

rockchip_suspend: rockchip-suspend {  compatible ="rockchip,pm-rk3588";  status ="okay";  rockchip,sleep-debug-en = <0>;  rockchip,sleep-mode-config = ;  rockchip,wakeup-config = <    RKPM_GPIO_WKUP_EN    RKPM_CPU0_WKUP_EN  >;};

注意:GPIO1~4唤醒必须配置RKPM_CPU0_WKUP_EN,且不能关闭vdd_log24M晶振。

五、避坑指南与常见问题

1.硬件设计第一原则:所有唤醒源优先布局在GPIO0组,这是实现最低功耗的唯一途径

2.跨平台配置无效RK3588的待机配置与其他瑞芯微芯片(如RK3568RK3399)完全不兼容,切勿直接复制

3.意外唤醒排查:优先关闭RKPM_CPU0_WKUP_EN,仅保留RKPM_GPIO_WKUP_EN,逐步添加唤醒源定位问题

4.休眠失败排查:先开启RKPM_SLP_TIME_OUT_WKUP测试基础休眠流程,排除电源域硬件问题

5.IO保持无效:检查对应IO域的电源是否在休眠时被关闭,必须确保电源持续供电

六、总结

RK3588的系统待机配置核心是根据产品的功耗需求和唤醒源需求,选择最优的断电等级和唤醒源组合。硬件设计时优先将唤醒源放在GPIO0组,可实现最低功耗的待机效果;软件调试时先打开休眠日志,使用PMU内部1秒自动唤醒功能验证基础流程,再逐步添加实际唤醒源,能大幅提升开发效率。

本文所有配置均基于官方最新指南验证,可直接用于项目开发。如有疑问,可参考瑞芯微官方文档或联系技术支持。

附:RK3588系统待机配置脑图

wKgZO2nZg0qASPybAANSb1mAMX4168.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • soc
    soc
    +关注

    关注

    40

    文章

    4619

    浏览量

    230086
  • 低功耗
    +关注

    关注

    12

    文章

    3981

    浏览量

    106848
  • 瑞芯微
    +关注

    关注

    27

    文章

    841

    浏览量

    54647
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    添越智创基于 RK3588 开发板部署测试 DeepSeek 模型全攻略

    :这无疑是 RK3588 的核心亮点。NPU 专为 AI 计算而生,能以极低功耗实现高达 6TOPS(每秒一万亿次操作)的算力。在边缘计算场景中,它能快速处理海量 AI 推理任务,大幅提升开发板
    发表于 02-14 17:42

    GPS 设计全攻略

    GPS 设计全攻略
    发表于 09-25 14:11

    LED技术全攻略

    LED技术全攻略
    发表于 09-25 14:16

    GPS 设计全攻略

    GPS 设计全攻略
    发表于 12-05 12:08

    GPS设计全攻略

    本帖最后由 zgzzlt 于 2012-8-16 13:58 编辑 GPS设计全攻略
    发表于 08-06 12:56

    MCU解密全攻略

    MCU解密全攻略
    发表于 08-19 14:28

    FPGA开发全攻略

    FPGA开发全攻略
    发表于 09-27 10:59

    FPGA开发全攻略

    FPGA开发全攻略
    发表于 05-21 09:28

    FPGA开发全攻略

    FPGA开发全攻略
    发表于 03-03 10:30

    简要说明一下RK3588 MMC模式的DTS配置

    RK3588的MMC分为3中模式:SDMMCSDIOSDHCI下面针对每种模式的DTS配置进行说明SDMMCSDMMC用于SD卡通信DTS配置
    发表于 05-26 10:26

    MCU解密全攻略

    本内容介绍了MCU解密的全攻略教程
    发表于 07-11 17:51 650次下载
    MCU解密<b class='flag-5'>全攻略</b>

    LED调光技术全攻略

    LED调光技术全攻略
    发表于 02-08 00:50 44次下载

    rk3588rk3588s的区别

    高性能、低功耗的处理器,是针对不同市场设计的不同版本。这篇文章将介绍这两种处理器的区别。 RK3588RK3588S的概述 - RK3588 RK
    的头像 发表于 08-15 16:44 2.1w次阅读

    rk3588是什么类型的芯片?

    低功耗、高集成度等优点,被广泛应用于智能手机、智能家居、人工智能、工业控制等领域。 RK3588采用了台积电的7nm制造工艺,核心配置为四个64位的Cortex-A76大核心和四个Cortex-A55
    的头像 发表于 08-15 17:04 8347次阅读

    GPS设计全攻略

    电子发烧友网站提供《GPS设计全攻略.pdf》资料免费下载
    发表于 12-01 17:10 0次下载