芯片使能

支持的芯片 [ 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,硬件才会将其识别为有效电平变化。

去抖动功能在电平复位模式、中断复位模式和脉冲复位模式下均有效,其工作原理如下图所示。

../../_images/debounce_function.svg

电平复位模式

电平复位模式是硬件默认模式,无需任何软件配置即可生效。

系统上电时,一旦 CHIP_EN 引脚电平由低变高,硬件 PMC 退出复位状态并为系统上电,完成启动。

在运行过程中,只要 CHIP_EN 检测到低电平,整个系统立即进入复位状态,并在 CHIP_EN 恢复高电平后重启。此模式对软件状态无任何依赖,是最彻底的硬件复位手段。

中断复位模式

中断复位模式面向需要区分"短按"与"长按"两种用户操作的产品场景,例如智能手机的电源键:短按进入/退出低功耗模式,长按强制重启系统。

../../_images/chip_en_software_interrupt_mode.svg

在此模式下,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 模式下,此类短触碰不会唤醒系统。

../../_images/short_press_without_triggering_interrupt.svg

情况 2:Tsp ≤ 按下时长 < Tsp + Tlp(短按)

触发短按中断。若系统处于 sleep 模式,此中断同时唤醒系统,硬件置位相应的唤醒原因标志,软件可在中断处理或启动流程中读取该标志。

../../_images/short_press_triggering_short_press_interrupt.svg

情况 3:按下时长 ≥ Tsp + Tlp,且软件在 Tack 内确认(长按 + 软件正常)

先触发短按中断,随后触发长按中断。软件正常运行时,需在 Tack 时间内清除长按中断以阻止硬件复位。清除中断后,无论按键继续保持多久,不再产生新中断。

若长按中断发生在 sleep 模式,同样会唤醒系统并置位唤醒原因标志。

../../_images/long_press_without_system_reset.svg

情况 4:按下时长 ≥ Tsp + Tlp,且软件未在 Tack 内确认(长按 + 软件崩溃或未响应)

若软件在 Tack 时间内未清除长按中断,硬件在 Tsp + Tlp + Tack 到期后强制复位系统。

  • 若复位触发时 CHIP_EN 已恢复高电平,系统立即重启。

  • 若复位触发时 CHIP_EN 仍处于低电平,系统保持复位状态,直到 CHIP_EN 变为高电平后才重启。

系统复位后,硬件将 CHIP_EN 工作模式重置为电平复位模式(默认值),软件需在 bootloader 或应用程序初始化阶段重新配置目标模式。

../../_images/long_press_with_system_reset.svg

脉冲复位模式

脉冲复位模式适用于需要"短按立即重启、长按恢复出厂设置"的产品场景,例如路由器上的复位键。

../../_images/chip_en_pulse_reset_mode.svg

与电平复位模式的区别在于:脉冲复位模式下,系统在检测到低电平后 立即 重启,而不是等待 CHIP_EN 恢复高电平。系统重启后,软件可在启动流程中通过读取 CHIPEN_ST[18] 位检测 CHIP_EN 引脚当前电平状态,从而判断用户是否仍在按住按键,进而区分短按(重启)和长按(恢复出厂设置)行为,执行不同的启动路径。

警告

一旦进入脉冲复位模式,无法再修改为其他模式,只能通过 断电重启 恢复至默认的电平复位模式。

寄存器

RTL8721Dx:

CHIP_EN 寄存器的基地址为 0x41008000。

名称

偏移

访问

描述

REG_AON_CHIPEN_CTRL

0x50

R/W

CHIP_EN 功能控制寄存器

REG_AON_CHIPEN_ISR

0x54

R/W1C

CHIP_EN 中断清除寄存器

REG_AON_CHIPEN_CTRL

  • 名称:CHIP_EN 功能控制寄存器

  • 大小:32 位

  • 地址偏移:0x50

  • 读/写访问:读/写

../../_images/reg_chipen_ctrl.svg

符号

访问

复位

描述

31:19

RSVD

-

-

保留

18

CHIPEN_ST

R

0

CHIP_EN pin 状态

  • 0:CHIP_EN pin 上为逻辑 '0'

  • 1:CHIP_EN pin 上为逻辑 '1'

17:16

CHIPEN_INTR_MODE

R/W/ES

0

Chipen 操作模式

  • 00:复位模式。当 chipen pad 为 low 时,hw 将复位整个芯片。

  • 01:中断模式。它将启用短按/长按功能。

  • 1x:脉冲复位模式。从其他值转换到 2'd2 将在 HV domain 中生成一个 posedge 来设置 RST_PULSE_EN。

    一旦进入脉冲复位模式,此字段无法再次修改,并且始终读出 2'b11。

15:14

RSVD

-

0

保留

13:12

CHIPEN_TACK

R/W

0

  • 00:50ms

  • 01:100ms

  • 10:200ms

  • 11:400ms

11

RSVD

-

-

保留

10:8

CHIPEN_TLP

R/W

0

  • 000:1000ms

  • 001:1500ms

  • 010:2000ms

  • 011:2500ms

  • 100:3000ms

  • 101:3500ms

  • 110:4000ms

  • 111:4500ms

7

RSVD

-

-

保留

6:4

CHIPEN_TSP

R/W

0

  • 000:0ms

  • 001:50ms

  • 010:100ms

  • 011:150ms

  • 100:200ms

  • 101:250ms

  • 110:300ms

  • 111:350ms

3

RSVD

-

-

保留

2:0

CHIPEN_TDBC

R/W

001

  • 000:0us

  • 001:100us

  • 010:500us

  • 011:1000us

  • 100:2000us

  • 101:4000us

  • 110:8000us

  • 111:16000us

REG_AON_CHIPEN_ISR

  • 名称:CHIP_EN 中断清除寄存器

  • 大小:32 位

  • 地址偏移:0x54

  • 读/写访问:读/写以清除

../../_images/reg_chipen_isr.svg

符号

访问

描述

31:2

RSVD

-

保留

1

CHIPEN_LP_ISR

R/W1C

Chipen 长按中断状态。

  • 0:无中断

  • 1:中断发生。写入 '1' 以清除标志。

0

CHIPEN_SP_ISR

R/W1C

Chipen 短按中断状态。

  • 0:无中断

  • 1:中断发生。写入 '1' 以清除标志。