2. 硬件上电与电源时序检查

Broadcom 交换芯片(如 Trident、Tomahawk 系列)通常不是由单一电源供电,而是被拆分成多个电源域:核心电压(VDD_CORE,约 0.8~0.95V)、SerDes/模拟电压(VDD_A,约 0.9~1.0V)、I/O 电压(VDD_IO,1.8V 或 3.3V)、PLL 电压(VDD_PLL)、以及 DDR/PHY 相关电压等。这些电源域的上电顺序、斜率、稳态精度和复位释放时机,直接决定芯片能否正常完成初始化。板级 Bring-up 阶段最常见的“芯片不启动”“PCIe/SerDes 链路不训练”“I2C 读不到器件”等问题,很大比例都源于电源时序或复位释放异常,而不是芯片本身损坏。

多路电源域与 PMBus/VR 控制

现代交换板普遍采用数字电源控制器(如 Infineon、MPS、Renesas 的 VR 芯片)配合 PMBus 总线进行电压管理。PMBus 基于 I2C 物理层,使用 SMBus 协议,典型地址为 0x30~0x5F 的 7 位地址。上电前,BMC 或管理 CPU 会通过 PMBus 读取每个 VR 的 READ_VOUT、READ_IOUT、READ_TEMPERATURE_1 等遥测寄存器,并写入 VOUT_COMMAND 设定目标电压、VOUT_MARGIN_HIGH/LOW 做余量测试。上电时序通常由 VR 的 POWER_GOOD 信号级联或由 CPLD/FPGA 统一控制 EN 引脚实现。

一个典型的 5 路电源域上电顺序示例(假设值,仅用于说明):

顺序电源域目标电压典型斜率就绪信号
1VDD_IO (3.3V)3.30V ±3%1~3 msPG_3V3
2VDD_IO (1.8V)1.80V ±3%1~3 msPG_1V8
3VDD_A (SerDes)0.95V ±2%2~5 msPG_0V95
4VDD_CORE0.85V ±2%2~5 msPG_CORE
5VDD_PLL1.00V ±1%1~2 msPG_PLL

顺序原则一般是:I/O 先于核心,模拟/SerDes 先于数字核心,PLL 最后或与核心同步。若顺序颠倒,可能出现衬底注入、闩锁或 I/O 驱动能力不足导致初始化失败。

上电时序、复位释放与时钟就绪

上电时序检查的核心是“三看”:看电压是否在窗口内、看 PG 是否按时拉高、看复位是否在时钟稳定后释放。复位信号(如 SYS_RST_N、PERST_N)通常要求在所有电源 PG 有效并延迟 10~100 ms 后才释放,以保证内部 PLL 锁定。时钟就绪信号(CLK_READY)来自外部晶振或时钟发生器(如 Si5332、LMK 系列),频率典型为 25 MHz 参考、100 MHz 差分或 156.25 MHz。若复位释放时参考时钟尚未稳定,芯片可能进入不可预测状态。

建议在 Bring-up 时用示波器同时抓取至少 4 路信号:VDD_CORE、VDD_A、SYS_RST_N、CLK_READY。使用 4 通道以上示波器,探头地线尽量短,避免引入噪声。

常见电源故障定位

电源故障定位遵循“先测电压、再测时序、后查通信”的顺序。常见现象与排查方向:

  • 某路电压为 0V:检查 VR 的 EN 是否被拉低、输入 12V/5V 是否到位、PMBus 是否被误写为 margin low 或 off。
  • 电压偏低或偏高:检查反馈分压电阻、VOUT_COMMAND 设定值、负载是否短路或过流保护触发。
  • PG 不拉高:用示波器看 PG 是否被其他电源拉低,或 VR 内部 fault 寄存器(STATUS_WORD)是否置位。
  • 复位释放过早:检查 CPLD/FPGA 的复位逻辑是否依赖所有 PG 的“与”结果,延迟是否足够。
  • 时钟未就绪:测量参考晶振是否起振、时钟发生器输出是否使能、差分对是否接反。

下面这张图把“电源域 → PG 级联 → 复位释放 → 时钟就绪 → 芯片初始化”的信号链关系集中呈现,便于对照示波器抓取的波形逐点判断。

交换芯片上电时序与复位释放信号链 VDD_IO 3.3V PG_3V3 VDD_IO 1.8V PG_1V8 VDD_A 0.95V PG_0V95 VDD_CORE 0.85V PG_CORE VDD_PLL 1.0V PG_PLL CPLD/FPGA PG 与逻辑 复位延迟计数 10~100 ms 所有 PG 有效后 才释放 SYS_RST_N SYS_RST_N 时钟发生器 25M / 100M / 156.25M CLK_READY Broadcom 交换芯片 PLL 锁定 内部复位释放 初始化完成 PCIe / SerDes 训练 I2C/SPI 可访问 PMBus 遥测 READ_VOUT / IOUT / TEMP STATUS_WORD 故障字 ● 示波器建议抓取点:VDD_CORE、VDD_A、SYS_RST_N、CLK_READY t0 上电 IO 就绪 模拟/核心就绪 复位释放 时钟稳定 初始化

Bring-up 实操检查清单

以下清单可直接用于上电首轮检查,按顺序执行,每步记录实测值:

  1. 断电状态下用万用表测量各电源域对地阻抗,排除短路(典型值应大于 50Ω,核心域可能更低)。
  2. 上电前确认 PMBus 地址无冲突,用 I2C 扫描工具确认 VR 可被识别。
  3. 上电,用示波器依次抓取 5 路电源的上升沿,记录斜率与稳态值,确认在 ±3% 窗口内。
  4. 抓取所有 PG 信号,确认级联顺序正确,无毛刺或反复拉低。
  5. 抓取 SYS_RST_N,确认其释放沿在所有 PG 有效之后至少 10 ms。
  6. 抓取 CLK_READY 与参考时钟,确认复位释放时时钟已稳定。
  7. 通过 PMBus 读取 STATUS_WORD,确认无 fault、无 margin 误设。
  8. 若芯片仍不响应,用 JTAG/SPI 读取芯片 ID 寄存器,判断是否进入初始化。
注意:不同板卡、不同芯片型号的电源域数量和顺序可能不同,务必以芯片数据手册的 Power Sequencing 章节和板卡原理图为准。上表中的电压、斜率、延迟均为教学示例,不可直接套用到实际设计。

电源时序检查不是一次性的动作,而是贯穿 Bring-up 全过程的基线。只有把每一路电源、每一个 PG、复位释放点和时钟就绪点都测量清楚,后续的 SerDes 链路调试、PCIe 枚举和交换功能验证才有可靠的起点。