### ACT8846 关于 RESET 及休眠唤醒的关键知识点 #### 一、概述 在探讨 ACT8846 的 RESET 和休眠唤醒机制之前,我们先来了解一下这款芯片的基本功能及其应用场景。ACT8846 是一款高性能电源管理集成电路(PMIC),广泛应用于移动设备如智能手机和平板电脑中,负责提供稳定的电源管理和调节功能。本文档将重点讨论在使用 ACT8846 过程中遇到的 RESET 操作和休眠唤醒过程中需要注意的关键点。 #### 二、RESET 操作注意事项 **1. 按键时间与复位类型** - **硬复位**: 当 RESET 按键被按下超过 4 秒时,PMU (Power Management Unit) 内部的寄存器会被清空并恢复到默认设置,之后 PMIC 会断电,用户可以通过按开机键重新启动设备。 - **软复位**: 如果按键时间少于 4 秒,则只会执行软复位操作,此时不会清除 PMU 内部的寄存器,可能会导致在电压较低的情况下无法正常重启设备。 **2. 电路设计的不同方案** - **旧方案**: 不支持短按 RESET 键进行复位操作,必须按住按键超过 4 秒以触发硬复位。此方案下,需要在软件配置中关闭宏 `CONFIG_ACT8846_SUPPORT_RESET`。 - **新方案**: 更新电路设计后,只需按住 RESET 按键即可实现快速复位重启。此方案中,需要在软件配置中打开宏 `CONFIG_ACT8846_SUPPORT_RESET`。 #### 三、休眠唤醒电压设置 **1. 休眠电压设置** 为了确保设备能够稳定地从休眠状态唤醒,需要正确设置休眠电压。在板级文件中定义了 `act8846_dcdc_info` 结构体数组,用于初始化各个电源轨的休眠电压。 - **示例代码**: ```c static struct pmu_info act8846_dcdc_info[] = { { .name = "vdd_core", .min_uv = 1000000, .max_uv = 1000000, #ifdef CONFIG_ACT8846_SUPPORT_RESET .suspend_vol = 1200000, #else .suspend_vol = 900000, #endif }, { .name = "vdd_cpu", .min_uv = 1000000, .max_uv = 1000000, #ifdef CONFIG_ACT8846_SUPPORT_RESET .suspend_vol = 1200000, #else .suspend_vol = 900000, #endif } // 其他电源轨配置... }; ``` **2. PMU_SLEEP 脚处理** 通过控制 PMU_SLEEP 脚的状态,可以实现休眠电压的切换。在进入休眠模式前,需要将 PMU_SLEEP 设置为高电平;当设备从休眠模式恢复时,需要将其设置回低电平。 - **示例代码**: ```c void __sramfunc board_pmu_act8846_suspend(void) { #ifdef CONFIG_CLK_SWITCH_TO_32K sram_gpio_set_value(pmic_sleep, GPIO_HIGH); #endif } void __sramfunc board_pmu_act8846_resume(void) { #ifdef CONFIG_CLK_SWITCH_TO_32K sram_gpio_set_value(pmic_sleep, GPIO_LOW); sram_udelay(2000); #endif } ``` #### 四、新方案中的电路修改 对于新方案而言,电路设计上有一些关键的变化: - 需要更新相关的代码库(commit ID: 4f3e4efb38fd205c44c505242c6038f073e6ea16)。 - 打开宏 `CONFIG_ACT8846_SUPPORT_RESET`。 - 在新方案中,当 RESET 按键被按下后,DVS0_CTL 信号线会恢复到默认状态(低电平),从而使得 ACT8846 的内部寄存器切换到 REG0,并加载其中设置的较高电压,确保系统能够重启。 #### 五、注意事项 1. **默认电压设置**: - 在新方案中,复位时切换的默认电压设置不能过低,具体的数值需要根据实际应用情况来确定,通常可以在 `act8846_dcdc_info[]` 结构体数组中进行设置。 - 示例: `#ifdef CONFIG_ACT8846_SUPPORT_RESET .suspend_vol = 1200000, #else .suspend_vol = 900000, #endif` 2. **宏配置**: - 硬件和软件之间的协同工作非常重要。对于不同版本的电路设计,需要确保宏配置正确,以实现预期的功能。 #### 六、总结 通过本文档的介绍,我们可以了解到在使用 ACT8846 时,正确的 RESET 操作以及合理的休眠唤醒电压设置是非常重要的。对于不同的硬件设计方案,需要采用相应的软件配置来确保设备能够正常工作。此外,还应该密切关注官方提供的最新代码更新,以便及时引入改进措施。
- 粉丝: 3
- 资源: 31
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助