2. Sitara量产测试的硬件基础

Sitara(AM335x/AM437x/AM57xx 等)量产测试的第一道门槛不是测试程序,而是硬件基础是否被正确理解。同一颗芯片,在不同目标板上的接口引出、供电时序、时钟来源和启动介质选择都会改变测试策略:有些板子能直接跑 Linux 做功能测试,有些板子只能靠 UART 或 USB 引导做最小系统验证。本节围绕 DUT 接口定义、电源与时钟架构、启动模式对测试的影响,以及夹具与探针选型原则展开。

一、DUT 接口定义:先分清“调试口”和“量产口”

Sitara 的 DUT 接口通常分为四类。第一类是调试与引导接口:JTAG(TCK/TMS/TDI/TDO/TRST/EMU0/EMU1)用于边界扫描和 CCS 调试;UART0(通常 115200-8-N-1)用于 ROM Code 引导和串口日志;USB0(Device 模式)用于 USB 引导和 DFU 下载。第二类是存储接口:GPMC 挂 NAND、MMC0/MMC1 挂 eMMC 或 SD 卡。第三类是电源与复位:VDDS_DDR、VDD_CORE、VDDSHVx 等电源域,以及 WARMRSTN、PORZ、NRESET_INOUT 等复位信号。第四类是时钟与测试点:晶振、CLKOUT、以及各电源域的测试点。

量产测试中,JTAG 和 UART 是必留的。JTAG 用于边界扫描检测焊接开路/短路,UART 用于确认 ROM Code 是否正常启动。如果目标板只留了 SD 卡座而没有 UART 引出,一旦启动失败,几乎无法定位是电源、时钟还是存储介质问题。因此,在测试夹具设计前,必须确认 DUT 上至少有以下测试点:VDD_CORE、VDDS_DDR、VDDSHV(3.3V)、SYSBOOT 配置引脚、UART0_TXD、JTAG 的 TCK/TMS/TDI/TDO,以及一个可观测的 CLKOUT 或晶振输出。

二、电源与时钟架构:上电时序决定测试能否启动

Sitara 的电源架构按域划分:VDD_CORE(1.1V 或 1.2V,视 OPP 而定)、VDDS_DDR(1.35V/1.5V)、VDDSHVx(1.8V/3.3V,按 IO 组)、VDDS_RTC(1.8V,常供)。上电顺序有明确要求:通常 RTC 域先上,然后 VDD_CORE,再 VDDS_DDR,最后 VDDSHV。如果顺序错误,可能出现 IO 漏电、DDR 初始化失败或 ROM Code 不执行。量产测试中,电源测试项包括:各域电压值、上电斜率、域间时序间隔、以及复位释放时刻。

时钟方面,Sitara 的主时钟来自 24MHz 或 25MHz 晶振(接 OSC0_IN/OSC0_OUT),经内部 PLL 倍频出 MPU、DDR、PER 等时钟。测试时需要确认:晶振是否起振(可用示波器看 OSC0_OUT 或 CLKOUT)、PLL 是否锁定(读 PRCM 寄存器 CLKSTCTRL)、以及各域时钟是否使能。如果晶振不起振,ROM Code 不会运行,UART 无输出,此时应优先检查晶振负载电容和 OSC0 供电。

Sitara DUT 电源/时钟/启动模式测试关系图 电源域(上电顺序) 1. VDDS_RTC 1.8V 2. VDD_CORE 1.1V 3. VDDS_DDR 1.5V 4. VDDSHV 3.3V 时钟链 24MHz 晶振 PLL 倍频 MPU/DDR/PER 时钟 启动模式(SYSBOOT[4:0]) NAND (GPMC) eMMC (MMC1) SD 卡 (MMC0) UART0 引导 USB0 引导 SPI 引导 启动模式对量产测试的影响 NAND 需 BCH ECC 配置 坏块管理影响良率 eMMC HS 模式需调时序 可在线烧录验证 SD 卡 夹具需卡座接触 适合快速换镜像 UART/USB 无需存储介质 适合最小系统验证

三、启动模式对测试的影响

Sitara 的启动模式由 SYSBOOT[4:0] 引脚在上电复位时采样决定。量产测试中,启动模式直接决定测试流程:

  • NAND 启动:ROM Code 从 GPMC 接口读取 NAND 的前几页,需要正确的 BCH ECC 配置。测试时要先确认 NAND ID 可读、坏块表可用。如果 NAND 有坏块,ROM Code 会尝试从后续块启动,但量产中坏块过多会导致启动失败,需设定坏块阈值。
  • eMMC 启动:ROM Code 从 MMC1 读取。eMMC 的 HS 模式对时序敏感,测试时需确认 CMD/DAT 线的信号完整性。eMMC 可在线烧录,适合先烧后测的流程。
  • SD 卡启动:ROM Code 从 MMC0 读取。SD 卡座在夹具中需要可靠的接触,否则会出现“有时能启动、有时不能”的间歇性故障。SD 启动适合快速换镜像,但量产中卡座寿命有限。
  • UART 引导:ROM Code 通过 UART0 接收数据,无需存储介质。这是最小系统验证的首选:只要电源、时钟、UART 正常,就能确认芯片基本可用。测试时用 115200 波特率发送引导数据,观察是否返回确认字符。
  • USB 引导:ROM Code 通过 USB0 Device 模式接收数据。USB 引导需要主机端驱动配合,适合没有 UART 引出或需要高速下载的场景。

实际量产中,通常采用“先 UART 确认最小系统,再切到目标启动介质”的两段式策略。例如,夹具先通过 SYSBOOT 跳线强制 UART 引导,确认电源、时钟、DDR 初始化正常后,再切换到 eMMC 或 NAND 启动,执行完整功能测试。这样可以把“芯片本身坏”和“存储介质坏”分开定位。

四、测试夹具与探针选型原则

夹具设计的核心是接触可靠性和信号完整性。对于 Sitara 这类 BGA 封装,测试点通常引到 PCB 背面的测试焊盘或过孔。探针选型需考虑以下原则:

  • 电源探针:选用低接触电阻(<50mΩ)、大电流承载能力(>1A)的探针,如弹簧针或双头探针。VDD_CORE 和 VDDS_DDR 的测试点要单独引出,避免与 IO 共用探针导致压降。
  • 高速信号探针:DDR 的 DQS/DQ 信号建议用高频探针(带宽 >1GHz),并尽量缩短探针长度。如果夹具无法保证信号完整性,DDR 测试应改为通过软件读写校验,而不是直接眼图测量。
  • JTAG 探针:TCK 频率在量产中通常降到 1MHz 以下,以容忍夹具带来的寄生电容。探针长度要一致,TDO 和 TDI 尽量远离时钟线。
  • UART 探针:UART0 的 TXD/RXD 是低速信号,普通探针即可,但要注意电平匹配(1.8V 或 3.3V)。
  • 探针寿命:量产夹具的探针寿命通常为 10 万到 100 万次。对于高引脚数 Sitara,建议选用可单独更换的探针模块,避免整板更换。
夹具设计检查点:在夹具投板前,用万用表确认每个测试点与芯片引脚之间的连通性;用示波器确认电源探针上的纹波不超过 50mV;用 JTAG 边界扫描确认所有连接引脚无开路/短路。这些检查可以在夹具阶段排除大部分接触问题。

五、一个可参考的测试配置示例

以下是一个 AM335x 量产测试的 SYSBOOT 配置与测试流程示例(参数为合理假设,非实测值):

# SYSBOOT[4:0] 配置示例(假设)
# 00000 = NAND 启动
# 00010 = eMMC 启动
# 00100 = SD 卡启动
# 00110 = UART0 引导
# 01000 = USB0 引导

# 测试流程:
# 1. 夹具上电,SYSBOOT 跳线设为 UART0 引导
# 2. 通过 UART0 发送 SPL 数据,观察是否返回 'CCCC'
# 3. 若返回正常,切换 SYSBOOT 到 eMMC 启动
# 4. 读取 eMMC CID,确认容量和版本
# 5. 执行 DDR 读写测试(地址 0x80000000 起,写入 0xAA55AA55)
# 6. 执行 GPMC NAND ID 读取(若板上有 NAND)
# 7. 记录各电源域电压值,判断是否在 ±5% 范围内

这个流程的关键在于:先用 UART 引导确认最小系统,再切换到目标启动介质。如果 UART 引导失败,问题一定在电源、时钟或 DDR 初始化,而不是存储介质。如果 UART 引导成功但 eMMC 启动失败,则问题集中在 eMMC 焊接、时序或分区表。这种分段定位方法可以显著缩短量产测试的排障时间。

总结来说,Sitara 量产测试的硬件基础可以归纳为三条:接口定义要留足调试口(JTAG+UART),电源时钟要按顺序验证,启动模式要作为测试策略的切换开关。夹具和探针选型则围绕接触可靠性和信号完整性展开,优先保证电源和低速调试信号的稳定,再考虑高速信号的测试需求。