RK808去掉低于3.5V关机

本文档介绍了如何修改RK808电源管理集成电路的源码,将默认的3.5V低电压关机设置更改为3.0V触发中断。通过修改特定的寄存器配置,实现电源管理的定制化,确保设备在电池电压低于3.0V时能够及时响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

拿到的源码RK808默认低于3.5V关机,修改为低于3.0V中断。

那么看一下规格书:

#define VB_LO_ACT        BIT(4)
#define VB_LO_SEL_3500MV    (7 << 0)
#define VB_LO_SEL_3000MV    (2 << 0)

修改寄存器初始化配置:

static const struct rk808_reg_data rk808_pre_init_reg[] = {
    { RK808_BUCK3_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_150MA },
    { RK808_BUCK4_CONFIG_REG, BUCK_ILMIN_MASK,  BUCK_ILMIN_200MA },
    { RK808_BOOST_CONFIG_REG, BOOST_ILMIN_MASK, BOOST_ILMIN_100MA },
    { RK808_BUCK1_CONFIG_REG, BUCK1_RATE_MASK,  BUCK_ILMIN_200MA },
    { RK808_BUCK2_CONFIG_REG, BUCK2_RATE_MASK,  BUCK_ILMIN_200MA },
    { RK808_DCDC_UV_ACT_REG,  BUCK_UV_ACT_MASK, BUCK_UV_ACT_DISABLE},
    { RK808_RTC_CTRL_REG, RTC_STOP, RTC_STOP},
#ifdef CONFIG_RK808_DISABLE_VABT_LOW_SHUTDOWN
    { RK808_VB_MON_REG, MASK_ALL, EN_VBAT_LOW_IRQ | VB_LO_SEL_3000MV },
#else
    { RK808_VB_MON_REG,       MASK_ALL,         EN_VABT_LOW_SHUT_DOWN |
                                                   VB_LO_SEL_3500MV },

#endif
};

<think>好的,我需要回答用户关于RK3588芯片是否支持设置低电量自动关机功能的问题。首先,我应该回顾一下用户提供的引用内容,看看有没有相关的信息。 引用[1]提到了ESD防护设计,可能和硬件保护有关,但和软件功能关系不大。引用[2]讨论了BQ25703充电IC和CW2017电量计的调试问题,涉及到电量检测和驱动配置。这说明RK3588系统可能依赖外部电源管理芯片和电量计来实现电池管理功能。 用户想知道是否能设置低于特定电量时自动关机。通常,这种功能需要硬件支持(如电量计)和软件配置(驱动和系统设置)。根据引用[2],CW2017电量计需要正确的电池配置参数,如果配置正确,系统应该能读取电量信息。然后,通过系统层或应用层的设置,可以触发低电量关机动作。 可能实现的方式包括:在内核驱动中设置低电量阈值,或者通过Android电源管理服务来监控电量并执行关机命令。需要检查设备树配置是否正确,电量计驱动是否正常上报电量,以及系统是否有相应的低电量处理机制。 还需要考虑用户是否有权限修改系统级别的设置,或者是否需要开发定制固件。如果硬件和驱动都已正确配置,实现自动关机功能应该是可行的。</think>RK3588芯片的低电量自动关机功能实现主要依赖电源管理子系统与电量计协同工作,根据硬件设计和系统配置可分为三个实现层级: 1. **硬件支持层** - 需配置符合要求的电量计芯片(如CW2017),其电池参数配置必须完整准确: $$ battery-profile = [0xXX,0xXX,...80bytes]; $$ - 充电管理IC(如BQ25703)需正确配置I2C地址和寄存器参数,确保能正常读取供电状态[^2] 2. **驱动适配层** 在设备树中需正确定义低电量阈值节点: ```dts power_supply: battery { low-voltage-threshold-microvolt = <3400000>; critical-voltage-threshold-microvolt = <3200000>; }; ``` 同时需要确保: - 电量计驱动正确解析电池参数(CW2017需80字节配置文件[^2]) - I2C通信参数配置正确(地址/频率/时序) 3. **系统控制层** Android系统通过以下路径实现控制: ``` frameworks/base/services/core/java/com/android/server/BatteryService.java ``` 其中关键判断逻辑: ```java if (mBatteryProps.batteryLevel <= mCriticalBatteryLevel) { sendShutdownBroadcast(); } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值