3. 芯片上电与时钟复位检查

Marvell 芯片平台在上电阶段能否顺利启动,取决于三个相互耦合的条件:各电源域按正确顺序建立、复位信号在电源与时钟稳定后释放、时钟树与 PLL 输出达到可用状态。Bring-up 阶段最常见的“板子插上电没反应”问题,绝大多数都落在这一环节。本节围绕电源域上电时序、复位释放流程、时钟树配置、PLL 锁定判断以及上电失败定位方法展开,帮助建立一套可复现的检查路径。

电源域上电时序

Marvell 的 SoC 通常划分多个电源域,例如核心域(VDD_CORE)、I/O 域(VDDIO)、模拟/PLL 域(AVDD)、DDR 域(VDD_DDR)以及部分外设域。这些域并非同时上电,而是遵循芯片数据手册规定的上电顺序。典型约束是:核心域先于 I/O 域建立,模拟/PLL 域在核心域稳定后供电,DDR 域最后或与 I/O 域同步。若顺序颠倒,可能出现 I/O 灌电流、PLL 无法锁定甚至闩锁风险。

实际检查时,第一步是确认各域的上电斜率与到达时间。以某 Marvell 参考设计为例,VDD_CORE 在 3.3V 主输入建立后约 2ms 达到 0.9V,VDDIO 在 5ms 达到 1.8V/3.3V,AVDD 在 8ms 达到 1.8V。这些数值属于示例,实际应以具体芯片手册为准。用示波器多通道同时抓取各域,观察是否存在某域提前建立或迟迟不建立。若某域由 PMIC 的使能引脚控制,需检查使能信号是否由前一级电源的 Power Good(PG)信号驱动,形成级联上电。

注意:部分 Marvell 芯片要求 VDD_CORE 与 VDDIO 之间的压差在上电过程中不得超过规定值,否则可能触发内部 ESD 结构导通。检查时不要只看最终电压,要看上电过程中的瞬态。

复位释放流程

复位分为上电复位(POR)、系统复位和局部复位。POR 由芯片内部或外部复位芯片产生,必须在所有电源域稳定且时钟有效后释放。复位释放过早,芯片会在电源未稳时开始采样,导致启动失败;释放过晚则可能错过 Boot ROM 的采样窗口。

检查复位释放时,重点看三个信号:外部复位输入(如 RESET_N)、内部复位输出(如 SYS_RST_N)以及各外设的局部复位。典型流程是:电源全部稳定 → POR 计数器计时(例如 10ms)→ 释放 SYS_RST_N → 时钟模块使能 → 释放外设复位。用示波器同时抓取 RESET_N 与 VDD_CORE,确认复位释放点位于电源稳定之后。若复位由外部复位芯片产生,需检查其阈值电压和延时是否与芯片要求匹配。

时钟树配置与 PLL 锁定判断

Marvell 芯片的时钟来源通常包括外部晶振(如 25MHz 或 40MHz)、外部时钟输入以及内部 RC 振荡器。启动阶段先由低速时钟驱动 Boot ROM,随后配置 PLL 产生高频时钟供 CPU 和总线使用。时钟树配置的核心是:选择参考时钟源、设置 PLL 倍频/分频参数、使能各时钟分支。

PLL 锁定判断依赖锁定指示信号(LOCK)或状态寄存器。检查时先确认参考时钟频率和幅度符合要求,再读取 PLL 状态寄存器。若 LOCK 位长时间为 0,常见原因包括:参考时钟未起振、PLL 供电异常、环路滤波参数不匹配、寄存器配置错误。部分芯片提供 PLL 锁定中断或状态引脚,可直接用示波器观察。

Marvell 芯片上电与时钟复位检查关系图 电源域上电时序 VDD_CORE 0.9V 先建立 VDDIO 1.8V/3.3V 后建立 AVDD 1.8V 再建立 VDD_DDR 最后建立 复位释放流程 电源全部稳定 POR 计数器计时 释放 SYS_RST_N 释放外设局部复位 时钟树与 PLL 外部晶振 25MHz/40MHz PLL 倍频/分频配置 LOCK 状态判断 时钟分支使能 常见上电失败定位路径 现象:无反应 电流异常/无电流 查电源域 电压/时序/斜率 查复位 释放点/电平/延时 查时钟/PLL 晶振/LOCK/配置 定位原则:先确认电源全部稳定,再确认复位释放点,最后确认时钟与 PLL 锁定;三者顺序不可颠倒。 工具:示波器多通道抓取、PMIC 寄存器读取、PLL 状态寄存器读取、JTAG 边界扫描。

常见上电失败定位方法

当板子上电后无反应,建议按“电源 → 复位 → 时钟”的顺序逐级排查,不要跳步。第一步用万用表确认各域静态电压是否正常,再用示波器抓取上电瞬间的时序。若某域电压偏低或为 0,检查 PMIC 输出、使能信号、反馈电阻和负载短路。第二步检查复位信号:RESET_N 是否在电源稳定后释放,释放电平是否达到芯片要求的高电平阈值。第三步检查时钟:晶振是否起振,PLL 参考时钟是否存在,LOCK 位是否置位。

若电源和复位均正常但芯片仍不启动,可读取芯片内部状态寄存器或通过 JTAG 连接查看 PC 指针。部分 Marvell 芯片在 Boot ROM 阶段会输出串口日志,若串口无输出,说明 Boot ROM 未执行,问题仍在时钟或复位。若串口有输出但停在某一行,则问题可能已进入软件或 DDR 初始化阶段。

建议在 Bring-up 前准备一份检查表,按“电源域电压 → 上电顺序 → 复位释放点 → 晶振起振 → PLL LOCK → 串口输出”逐项打勾,避免遗漏。

检查表示例

检查项 测试点 预期值/状态 工具
VDD_CORE 电压 核心域电容 0.9V ±5% 万用表/示波器
VDDIO 电压 I/O 域电容 1.8V 或 3.3V ±5% 万用表/示波器
上电顺序 各域同时抓取 核心先于 I/O,模拟域后于核心 多通道示波器
RESET_N 释放点 复位引脚 电源稳定后 ≥10ms 释放 示波器
晶振起振 晶振输出脚 25MHz/40MHz 正弦或方波 示波器
PLL LOCK 状态寄存器/引脚 LOCK 位置 1 寄存器读取/示波器
串口输出 调试串口 Boot ROM 日志正常打印 串口终端

上电与时钟复位检查是 Bring-up 的第一道关口。把电源域时序、复位释放和 PLL 锁定这三件事按顺序确认清楚,后续的 DDR 初始化、外设枚举和系统启动才有可靠基础。实际调试中,建议保留每次上电的示波器截图和寄存器读数,便于对比和回溯。