大家好,我是 EE 小新。
这两年做 RK3588 的项目很多,机器人、机器视觉、边缘 AI、工业主机、ARM 工控机,基本都能看到它。
所以不少硬件工程师简历上都会写一句:熟悉 RK3588 硬件设计。
但面试官一般不会只问你有几个 USB、几个 PCIe。这种 Datasheet 一查就知道的问题,问不出什么东西。
真往下问,基本绕不开 DDR、PCIe、电源、高速信号和 Debug。
下面这 22 个问题,可以自己试着答一下。

因为 DDR 采用源同步采样。每个 Byte Lane 里的 DQ,都是以对应的 DQS 作为采样参考,所以真正关键的是 DQ 和 DQS 之间的相对时序。
DQ-DQS Skew 过大,会直接吃掉 Setup/Hold Margin。
CK、CA 也需要满足自己的匹配要求,只是它们属于另外的 Timing Group。DDR Layout 不是所有线都拉成一样长,而是不同信号组分别满足自己的时序约束。
DQS 决定 DQ 的采样时刻,对边沿位置和噪声更加敏感。采用差分传输后,时序参考更稳定,对共模噪声也有更好的抑制能力。
DQ 的数量非常多,如果每一根 DQ 都采用差分传输,引脚数量、布线资源和成本都会明显增加,所以 DQ 采用单端传输。
但是注意的是,DQ 在接收端要和 VREF 进行比较,接收器通过判断 DQ 高于还是低于 VREF,确定当前数据是逻辑高还是逻辑低。DQ 是单端传输、差分判决;DQS 是差分传输、源同步采样。
DDR 做长度匹配,真正要控制的是传播时延差,走线长度只是工程上最直观的控制手段。
同样差 100mil,在不同层叠和不同走线层上,对应的传播时延不一定完全一样。所以不能只盯着差多少 mil,还要结合 PCB Stackup、传播延迟和 Rockchip 给出的 Layout 要求。
DDR 的匹配也不是简单追求全等长,而是要先看信号属于哪个 Timing Group,以及它真正需要和谁匹配。
ODT 是 On-Die Termination,也就是集成在芯片内部的终端电阻。
DDR 运行在较高频率下,走线已经不能再按普通导线来看,而要按照传输线处理。阻抗不连续会产生反射,ODT 的作用就是配合驱动器、接收器和总线拓扑,改善信号波形。
ODT 不是越小越好。它需要结合驱动强度、读写方向、总线拓扑、控制器和 DRAM 的配置一起调整,终端太强或太弱都可能导致波形变差。
低频正常,至少说明基本连接、供电和配置大概率没有完全错误。
频率升高以后,重点看 DQ-DQS Skew、反射、串扰、Jitter、电源噪声、VREF 以及 DDR Training 结果。速率越高,一个 UI 越短,系统能够容忍的时序误差就越小。
如果问题只在高频出现,还要结合温度、电压和不同板子的测试结果,判断是固定硬件问题,还是 Margin 不足。

DQ-DQS Skew 会让数据相对采样点发生偏移,Jitter 会让边沿在时间轴上来回漂移。反射、串扰和 ISI 会让边沿变慢、变形,严重时还会出现多次过零。
再叠加电源噪声和 VREF 波动,最终留给接收端稳定采样的时间窗口就会变小。
所以 Eye Width 不是被某一个因素单独吃掉的,而是多个误差共同作用的结果。表现出来就是眼图变窄,接收端的 Timing Margin 越来越少。
简单理解,就是 SoC 和 DRAM 根据实际板级环境,寻找一组能够稳定工作的读写时序和相关参数。
PCB 走线、器件差异、电压和温度都会影响结果,不可能靠一套固定理论值覆盖所有板子。Training 通常会涉及读写延迟、采样窗口、Vref 以及相关驱动配置的调整。
所以 Training 成功,不代表 DDR Layout 一定完美,只能说明当前这块板、当前温度和电压条件下,系统找到了一个可工作的参数窗口。
指的是 Lane 数量。
一条 PCIe Lane 包含一对 TX 差分信号和一对 RX 差分信号,所以 X4 就是 4 条 Lane 并行工作,而不是四根线。
TX 和 RX 各自使用独立的差分通道,因此 PCIe 可以进行全双工通信。
AC 耦合电容主要用于隔离链路两端 PHY 的直流共模工作点,只让高速变化的信号分量通过。
RK3588 的 PCIe 设计中,TX 侧 AC 耦合电容的连接方式、容量、封装和摆放位置,都应该按照对应接口规范和 Rockchip 官方参考设计执行。
这部分不能只凭经验决定,因为不同接口版本和不同链路设计,对电容位置和参数可能有具体要求。
当然不是。
RK3588 的 PCIe 数据线和 REFCLK,阻抗要求就不一样。PCIe 数据线通常按 85Ω 差分阻抗控制,REFCLK 通常按 100Ω 差分阻抗控制。
但阻抗只是信号完整性的一部分,还要看 P/N Skew、Insertion Loss、Return Loss、过孔、Via Stub、连接器、参考平面、串扰以及 AC 耦合电容带来的阻抗不连续。
高速信号不是把阻抗做到 85Ω,就可以认为链路一定没有问题。
速率越高,UI 越短,对损耗、Jitter、反射和串扰的容忍度就越低。
Gen1 能够正常建立 Link,只能说明基本连接和功能大概率是通的,并不能证明高速情况下的信号完整性满足要求。
定位时可以逐级降低速率,同时检查眼图、误码、链路训练状态和电源波形,判断问题是从哪个速率开始出现的。

RK3588 内部包含 CPU、GPU、NPU、DDR、IO、PLL 等多个 Power Domain,不同模块对工作电压、电流能力和电源噪声的要求并不一样。
因此设计中会看到核心电源、DDR 电源、IO 电源以及其他专用电源 Rail。有些电源可以共用,有些则需要独立控制,具体要看芯片的电源架构和参考设计。
这类大型 SoC 的电源设计,和普通 MCU 不是一个量级。

不同 Power Domain 之间并不是完全独立的。如果 Power Sequence 不满足芯片要求,可能出现启动异常、复位异常,甚至形成部分 IO 或 Power Domain 之间的非预期电流路径。
所以板子不开机时,不能只用万用表确认某个 Rail 有电压,就认为电源没有问题。还要用示波器检查关键 Power Rail、Power Enable、Reset 和时钟之间的时序关系。
万用表看到的主要是平均值,但 RK3588 真正容易出问题的地方,往往是 Ripple、瞬态跌落、负载突变时的动态响应和高频噪声。
CPU、GPU、NPU 负载变化时,瞬态电流可能在很短时间内发生变化。如果电源环路、PDN 或供电路径响应不够快,核心电压可能瞬间跌落。
这种问题通常需要结合示波器、电流探头和系统负载进行测试,单靠万用表很难发现。

主要作用是降低 PDN 阻抗,为 SoC 快速变化的瞬态电流提供就近电荷,同时缩短高频电流的回流路径。

去耦电容不是越多越好,也不是容量越大越好。电容容量、封装、ESL、摆放位置、过孔数量以及 Power/GND Plane,都会影响实际效果。
高速信号既有去程,也有回流。回流电流会尽量沿着低阻抗路径返回。
如果差分线跨越 Plane Split,或者参考平面突然变化,原来的回流路径就会被破坏,进而带来阻抗不连续、EMI 增大和信号完整性问题。
所以高速 Layout 不光要看表面的两根差分线,还要看它们下面的参考平面是否连续。
不是。P/N 间距会影响差分阻抗、耦合程度和布线密度。间距过大,耦合可能不足;间距过小,差分阻抗又可能偏低。
实际设计要结合 PCB Stackup,通过阻抗计算或仿真确定线宽和线距,不能只为了提高差分耦合,就把两根线盲目贴在一起。
不要一上来就怀疑 DDR 或者 BGA。
应该先确认输入电源和 PMIC 输出,再检查 Power Sequence、主时钟、Reset、启动模式以及相关启动信号。如果板上有串口日志,也要确认 SoC 是否已经开始执行代码。
先判断芯片有没有满足最基本的启动条件,再继续往 DDR、存储器和软件方向查。
这种问题通常不是完全没有功能,而是系统的工作 Margin 不够。
可以重点检查电源瞬态、Reset、Clock、DDR Margin、焊接、温度、启动介质以及系统 Log。还要对比冷启动、热启动、不同输入电压和不同负载下的表现。
偶发问题不能只盯着一个点,要把死机发生时的温度、负载、关键波形和 Log 对起来看。
先看 Training Log,确认问题集中在哪个 Channel、哪个 Byte Lane 以及哪个训练阶段,再检查对应的 DQ/DQS 走线、阻抗、VREF、供电、焊接和 DDR 配置。
如果错误长期集中在固定的 Channel 或 Byte Lane,可以优先检查对应的硬件路径,包括芯片封装、BGA 焊接和 PCB 走线。
但 Training Log 指向某个 Byte Lane,不代表一定是 PCB 问题,它只是帮助你缩小排查范围。
可以按照设备供电、REFCLK、PERST#、TX/RX 连接、Link Training 和系统枚举信息这个顺序往下查。
如果 REFCLK 没有输出,或者 PERST# 一直没有释放,软件和驱动通常都不是第一优先级。先确认物理链路具备建立 Link 的基本条件,再看控制器配置和操作系统枚举。
先确定高温以后到底是哪一个模块先出现异常。
可以重点关注电源 Margin、DDR Margin、Clock、芯片结温、热设计、器件参数漂移和焊接可靠性,同时把温度变化、关键电源波形和系统 Log 对应起来看。
高温死机只是现象,真正要找的是温度升高以后,哪个参数或者哪个模块先开始异常。
这些问题不只是 RK3588 才会遇到,换成其他高速 SoC,DDR、PCIe、电源完整性、信号完整性和偶发死机,一样绕不开。
有经验的面试官不会照着手册问,当出现 DDR 高频跑不起来、PCIe 掉链路、电源异常、偶发死机时,问你知不知道下一步怎么分析,思路是很重要的。