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 路电源域上电顺序示例(假设值,仅用于说明):
| 顺序 | 电源域 | 目标电压 | 典型斜率 | 就绪信号 |
|---|---|---|---|---|
| 1 | VDD_IO (3.3V) | 3.30V ±3% | 1~3 ms | PG_3V3 |
| 2 | VDD_IO (1.8V) | 1.80V ±3% | 1~3 ms | PG_1V8 |
| 3 | VDD_A (SerDes) | 0.95V ±2% | 2~5 ms | PG_0V95 |
| 4 | VDD_CORE | 0.85V ±2% | 2~5 ms | PG_CORE |
| 5 | VDD_PLL | 1.00V ±1% | 1~2 ms | PG_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。若复位释放时参考时钟尚未稳定,芯片可能进入不可预测状态。
常见电源故障定位
电源故障定位遵循“先测电压、再测时序、后查通信”的顺序。常见现象与排查方向:
- 某路电压为 0V:检查 VR 的 EN 是否被拉低、输入 12V/5V 是否到位、PMBus 是否被误写为 margin low 或 off。
- 电压偏低或偏高:检查反馈分压电阻、VOUT_COMMAND 设定值、负载是否短路或过流保护触发。
- PG 不拉高:用示波器看 PG 是否被其他电源拉低,或 VR 内部 fault 寄存器(
STATUS_WORD)是否置位。 - 复位释放过早:检查 CPLD/FPGA 的复位逻辑是否依赖所有 PG 的“与”结果,延迟是否足够。
- 时钟未就绪:测量参考晶振是否起振、时钟发生器输出是否使能、差分对是否接反。
下面这张图把“电源域 → PG 级联 → 复位释放 → 时钟就绪 → 芯片初始化”的信号链关系集中呈现,便于对照示波器抓取的波形逐点判断。
Bring-up 实操检查清单
以下清单可直接用于上电首轮检查,按顺序执行,每步记录实测值:
- 断电状态下用万用表测量各电源域对地阻抗,排除短路(典型值应大于 50Ω,核心域可能更低)。
- 上电前确认 PMBus 地址无冲突,用 I2C 扫描工具确认 VR 可被识别。
- 上电,用示波器依次抓取 5 路电源的上升沿,记录斜率与稳态值,确认在 ±3% 窗口内。
- 抓取所有 PG 信号,确认级联顺序正确,无毛刺或反复拉低。
- 抓取 SYS_RST_N,确认其释放沿在所有 PG 有效之后至少 10 ms。
- 抓取 CLK_READY 与参考时钟,确认复位释放时时钟已稳定。
- 通过 PMBus 读取
STATUS_WORD,确认无 fault、无 margin 误设。 - 若芯片仍不响应,用 JTAG/SPI 读取芯片 ID 寄存器,判断是否进入初始化。
电源时序检查不是一次性的动作,而是贯穿 Bring-up 全过程的基线。只有把每一路电源、每一个 PG、复位释放点和时钟就绪点都测量清楚,后续的 SerDes 链路调试、PCIe 枚举和交换功能验证才有可靠的起点。