芯片使能
支持的芯片 [ RTL8721Dx ][ RTL8720E ][ RTL8710E ][ RTL8726E ][ RTL8713E ][ RTL8730E ][ RTL8721F ]
简介
CHIP_EN(Chip Enable)是 SoC 上的一个专用外部引脚,用于在硬件层面控制整个芯片的复位状态。在电平复位模式(默认模式)下,即使操作系统或应用程序已经崩溃,CHIP_EN 依然能够在不依赖任何软件的情况下可靠地复位系统。
CHIP_EN 支持三种工作模式,可满足不同产品的交互需求:
工作模式 |
触发机制 |
典型适用场景 |
|---|---|---|
电平复位模式(默认) |
CHIP_EN 低电平期间持续复位,高电平后恢复运行 |
系统上电初始化、硬件安全兜底 |
中断复位模式 |
短按触发中断,长按且软件未响应则触发复位 |
智能设备(如手机)的电源键:短按唤醒/休眠, 长按强制重启 |
脉冲复位模式 |
低电平后立即触发复位并释放,系统重启后由软件 判断按键时长 |
路由器等设备的复位键:短按重启,长按恢复出厂设置 |
备注
CHIP_EN 复位会按正确顺序控制 SWR(Switching Regulator)及其他电源域,确保片外电路正确复位。
初始上电时序请遵循数据手册中"CHIP_EN 复位顺序"章节的说明。
默认情况下,CHIP_EN 在电平复位模式下工作。如需切换为中断复位模式或脉冲复位模式,可在 bootloader 或应用程序初始化阶段通过配置 REG_AON_CHIPEN_CTRL 寄存器的 CHIPEN_INTR_MODE[17:16] 字段实现(详见 寄存器 章节)。配置生效前,CHIP_EN 始终以电平复位模式运行。
此外,CHIP_EN 具有从 sleep 和 deep-sleep 低功耗模式唤醒系统的能力。唤醒后,系统可通过 PMC(Power Management Controller)提供的唤醒原因寄存器识别是由 CHIP_EN 触发的唤醒事件。
功能描述
去抖动
机械按键在按下或释放瞬间通常会产生短暂的电平抖动,若不加以过滤,系统将误判触发事件。CHIP_EN 内置硬件去抖动功能,可自动过滤短于 Tdb (Debounce Time) 的毛刺信号。
默认情况下,去抖动功能已启用,Tdb 默认为 100 μs,可配置范围为 100 μs 至 16 ms(通过 CHIPEN_TDBC[2:0] 字段配置)。只有当连续的低电平或高电平持续时间超过 Tdb,硬件才会将其识别为有效电平变化。
去抖动功能在电平复位模式、中断复位模式和脉冲复位模式下均有效,其工作原理如下图所示。
电平复位模式
电平复位模式是硬件默认模式,无需任何软件配置即可生效。
系统上电时,一旦 CHIP_EN 引脚电平由低变高,硬件 PMC 退出复位状态并为系统上电,完成启动。
在运行过程中,只要 CHIP_EN 检测到低电平,整个系统立即进入复位状态,并在 CHIP_EN 恢复高电平后重启。此模式对软件状态无任何依赖,是最彻底的硬件复位手段。
中断复位模式
中断复位模式面向需要区分"短按"与"长按"两种用户操作的产品场景,例如智能手机的电源键:短按进入/退出低功耗模式,长按强制重启系统。
在此模式下,CHIP_EN 引脚的电平变化不再直接复位系统,而是触发中断,由软件响应并决定下一步动作。判断逻辑基于以下三个时间阈值(均可通过寄存器配置):
Tsp:短按时间阈值。默认值为 0ms(
CHIPEN_TSP[6:4] = 000),即任何低电平持续时间均视为短按触发条件,建议根据产品按键手感配置为 50ms 或以上。Tlp:长按时间阈值(在 Tsp 之后计算)。默认值为 1000ms(
CHIPEN_TLP[10:8] = 000)。Tack:软件确认窗口。软件必须在此时间内清除长按中断,否则硬件触发复位。默认值为 50ms(
CHIPEN_TACK[13:12] = 00)。
情况 1:按下时长 < Tsp
未达到短按阈值,不触发任何中断,系统正常运行。在 sleep 模式下,此类短触碰不会唤醒系统。
情况 2:Tsp ≤ 按下时长 < Tsp + Tlp(短按)
触发短按中断。若系统处于 sleep 模式,此中断同时唤醒系统,硬件置位相应的唤醒原因标志,软件可在中断处理或启动流程中读取该标志。
情况 3:按下时长 ≥ Tsp + Tlp,且软件在 Tack 内确认(长按 + 软件正常)
先触发短按中断,随后触发长按中断。软件正常运行时,需在 Tack 时间内清除长按中断以阻止硬件复位。清除中断后,无论按键继续保持多久,不再产生新中断。
若长按中断发生在 sleep 模式,同样会唤醒系统并置位唤醒原因标志。
情况 4:按下时长 ≥ Tsp + Tlp,且软件未在 Tack 内确认(长按 + 软件崩溃或未响应)
若软件在 Tack 时间内未清除长按中断,硬件在 Tsp + Tlp + Tack 到期后强制复位系统。
若复位触发时 CHIP_EN 已恢复高电平,系统立即重启。
若复位触发时 CHIP_EN 仍处于低电平,系统保持复位状态,直到 CHIP_EN 变为高电平后才重启。
系统复位后,硬件将 CHIP_EN 工作模式重置为电平复位模式(默认值),软件需在 bootloader 或应用程序初始化阶段重新配置目标模式。
脉冲复位模式
脉冲复位模式适用于需要"短按立即重启、长按恢复出厂设置"的产品场景,例如路由器上的复位键。
与电平复位模式的区别在于:脉冲复位模式下,系统在检测到低电平后 立即 重启,而不是等待 CHIP_EN 恢复高电平。系统重启后,软件可在启动流程中通过读取 CHIPEN_ST[18] 位检测 CHIP_EN 引脚当前电平状态,从而判断用户是否仍在按住按键,进而区分短按(重启)和长按(恢复出厂设置)行为,执行不同的启动路径。
警告
一旦进入脉冲复位模式,无法再修改为其他模式,只能通过 断电重启 恢复至默认的电平复位模式。
寄存器
CHIP_EN 寄存器的基地址为 0x41008000。
CHIP_EN 寄存器的基地址为 0x4100C000。
CHIP_EN 寄存器的基地址为 0x4100C000。
CHIP_EN 寄存器的基地址为 0x4100C000。
CHIP_EN 寄存器的基地址为 0x4100C000。
CHIP_EN 寄存器的基地址为 0x42008000。
CHIP_EN 寄存器的基地址为 0x4080A000。
名称 |
偏移 |
访问 |
描述 |
|---|---|---|---|
0x50 |
R/W |
CHIP_EN 功能控制寄存器 |
|
0x54 |
R/W1C |
CHIP_EN 中断清除寄存器 |
REG_AON_CHIPEN_CTRL
名称:CHIP_EN 功能控制寄存器
大小:32 位
地址偏移:0x50
读/写访问:读/写
位 |
符号 |
访问 |
复位 |
描述 |
|---|---|---|---|---|
31:19 |
RSVD |
- |
- |
保留 |
18 |
CHIPEN_ST |
R |
0 |
CHIP_EN pin 状态
|
17:16 |
CHIPEN_INTR_MODE |
R/W/ES |
0 |
Chipen 操作模式
|
15:14 |
RSVD |
- |
0 |
保留 |
13:12 |
CHIPEN_TACK |
R/W |
0 |
|
11 |
RSVD |
- |
- |
保留 |
10:8 |
CHIPEN_TLP |
R/W |
0 |
|
7 |
RSVD |
- |
- |
保留 |
6:4 |
CHIPEN_TSP |
R/W |
0 |
|
3 |
RSVD |
- |
- |
保留 |
2:0 |
CHIPEN_TDBC |
R/W |
001 |
|
REG_AON_CHIPEN_ISR
名称:CHIP_EN 中断清除寄存器
大小:32 位
地址偏移:0x54
读/写访问:读/写以清除
位 |
符号 |
访问 |
描述 |
|---|---|---|---|
31:2 |
RSVD |
- |
保留 |
1 |
CHIPEN_LP_ISR |
R/W1C |
Chipen 长按中断状态。
|
0 |
CHIPEN_SP_ISR |
R/W1C |
Chipen 短按中断状态。
|