硬件连接检查:电源与地线检查、时钟与复位信号测量、JTAG/SWD链路验证

板子拿回来了,焊接好了,上电之前,我最怕什么?

怕冒烟。

真的,我刚开始做项目那会儿,有一次上电前没仔细量电源,结果一按开关,板子上一个电容直接炸了,吓我一跳。从那以后,我养成了一个习惯——上电前必须把硬件连接查个底朝天。今天咱们就聊聊这个环节,说白了就是三板斧:电源地线、时钟复位、还有调试链路。

1. 电源与地线检查:别让板子“憋着气”

电源是板子的命脉。地线是它的回路。这两样出问题,后面全是白搭。

先看电源

我个人习惯,拿到板子第一件事,拿万用表打二极管档,测一下电源对地的阻抗。嗯,这里要注意,不是测电阻,是测二极管压降。为什么呢?因为电源网络上有大电容,测电阻会慢慢充放电,数值不准。二极管档能快速告诉你——有没有短路。

  • 正常值:一般核心电源(比如1.1V、1.2V)对地压降在0.3V~0.6V之间,IO电源(3.3V)在0.4V~0.8V之间。
  • 危险信号:如果测出来是0.000V,或者蜂鸣器响了——恭喜你,短路了。赶紧查焊锡、查电容、查BGA有没有连锡。
  • 另一个极端:如果测出来是无穷大(OL),也别高兴太早。可能是电源网络根本没连到芯片,或者电感虚焊了。
⚠️ 我曾经踩过的坑: 有一次测3.3V对地阻抗正常,上电后芯片却不工作。查了半天,发现是电源芯片的反馈电阻焊错了,输出电压只有1.8V。所以记住——阻抗正常不代表电压正常。上电后一定要用万用表再测一次实际电压。

再看地线

地线检查其实更隐蔽。很多新手觉得“地嘛,都连在一起了,能有什么问题?”你想想看,如果地线回流路径阻抗太大,或者数字地和模拟地没处理好,后果就是——信号乱跳、ADC不准、通信时不时断连。

我建议的做法:

  1. 用万用表通断档,测板子上各个关键地点的连通性。比如电源入口的地、FPGA的地、晶振的地、接插件的地。它们之间应该是0欧姆。
  2. 如果板子上有模拟地和数字地分割,检查单点连接的位置对不对。我记得有一次,一个同事把模拟地和数字地通过一个0欧电阻连起来了,但电阻没焊——结果模拟信号全是噪声。
  3. 大电流回路的地线,比如电机驱动、LED驱动,要特别注意走线宽度。如果地线太细,压降会很大,甚至可能烧断。
🔑 核心要点: 电源检查分两步——上电前测阻抗防短路,上电后测电压防虚焊。地线检查就一个原则——所有地必须等电位。

2. 时钟与复位信号测量:心跳和重启键

时钟是系统的心跳。复位是系统的重启键。这两个信号出问题,FPGA要么不工作,要么工作一会儿就抽风。

时钟信号测量

时钟测量,我一般用示波器,不用万用表。为什么?因为时钟是交流信号,万用表只能测个平均值,看不出波形质量。

测量步骤:

  • 频率对不对:示波器探头打到10X档,接在时钟输出引脚上。看频率是否和标称值一致。比如50MHz晶振,测出来应该是50.000MHz ± 50ppm。如果差太多,晶振可能坏了,或者负载电容配错了。
  • 幅度够不够:一般LVCMOS时钟,高电平要大于2.7V(3.3V供电时),低电平要小于0.8V。如果幅度不够,FPGA的时钟输入可能识别不到。
  • 抖动大不大:这个需要示波器有余晖模式或者眼图功能。抖动太大的时钟,会导致时序收敛困难。我在项目中遇到过,一个PLL死活锁不住,最后发现是时钟源旁边的电源纹波太大,把时钟抖得乱七八糟。
💡 小技巧: 测量时钟时,探头地线要尽量短。最好用弹簧地线,而不是那个长长的鳄鱼夹地线。否则你测到的抖动可能有一半是探头引入的。

复位信号测量

复位信号,说白了就是让系统回到初始状态。上电时,复位信号应该保持一段时间的低电平(或高电平,取决于设计),然后释放。

我习惯这样测:

  1. 示波器设置为单次触发模式,触发电平设在复位信号的中间值(比如1.65V)。
  2. 然后给板子上电。看复位信号从低到高的上升沿是否干净。
  3. 如果复位信号有毛刺、或者上升沿太慢(超过几百纳秒),那就要小心了。复位信号不干净,FPGA可能初始化到一半又复位了,导致启动失败。
⚠️ 注意: 有些FPGA有上电复位电路,内部会自己产生复位信号。但外部复位芯片的复位输出,一定要和FPGA的复位输入引脚连接正确。我曾经见过一个设计,复位芯片的输出接到了FPGA的普通IO上,而不是专用复位引脚——结果FPGA永远无法正常复位。

3. JTAG/SWD链路验证:能不能“说话”是关键

电源和时钟都正常了,接下来就是验证调试链路。说白了,就是看看你的电脑能不能和板子上的芯片“对上话”。

JTAG vs SWD

JTAG是4线(TMS、TCK、TDI、TDO),SWD是2线(SWDIO、SWCLK)。ARM芯片一般支持SWD,FPGA一般用JTAG。不管哪种,链路验证的思路是一样的。

链路检查步骤

  • 第一步:看物理连接。用万用表通断档,测一下调试器到板子接插件之间的每个信号线。特别是GND,一定要通。我遇到过好几次,调试器连不上,最后发现是GND线断了。
  • 第二步:测信号电平。上电后,用示波器看TCK(或SWCLK)引脚。调试器空闲时,这个引脚应该有一个稳定的时钟信号(通常是几MHz)。如果没有,说明调试器没工作,或者线没接对。
  • 第三步:用软件扫描。打开IDE或者调试工具(比如OpenOCD、J-Flash),尝试扫描JTAG链。如果能识别到芯片IDCODE,恭喜你,链路通了。
🔑 核心要点: JTAG/SWD链路不通,90%的原因是物理连接问题——虚焊、线序不对、GND没接。剩下10%是芯片没上电或者进入了低功耗模式。

常见问题与解决

现象 可能原因 解决方法
扫描不到芯片 JTAG线序错误 核对原理图,确认TMS/TCK/TDI/TDO对应关系
扫描到芯片但无法连接 芯片处于低功耗模式或复位状态 检查复位信号,确保芯片处于正常工作模式
连接不稳定,经常断开 JTAG信号线太长或干扰大 缩短线缆长度,降低TCK频率(比如从10MHz降到1MHz)
SWD模式下无法识别 SWDIO上拉/下拉电阻配置错误 检查芯片手册,确认SWDIO是否需要外部上拉
💡 我的经验: 如果JTAG死活连不上,试试把TCK频率降到最低(比如100kHz)。有些调试器在高速模式下对信号质量要求很高,降频后反而能连上。等连上之后,再慢慢调高频率。

知识体系总览

说了这么多,咱们用一张图把这三个检查点串起来。你想想看,硬件联调就像给板子做体检——先看心脏(电源),再看脉搏(时钟),最后看神经(调试链路)。

硬件连接检查:三大核心步骤 ① 电源与地线检查 上电前测阻抗,上电后测电压 ② 时钟与复位测量 频率、幅度、抖动、上升沿 ③ JTAG/SWD链路验证 物理连接、信号电平、软件扫描 电源检查细节 • 二极管档测对地压降 • 正常范围:0.3V~0.8V • 短路→查焊锡/电容/BGA • 开路→查电感/电源芯片 时钟/复位检查细节 • 示波器测频率、幅度 • 检查抖动和上升沿 • 复位信号单次触发测量 • 毛刺→加滤波电容 JTAG/SWD检查细节 • 万用表测物理连接 • 示波器看TCK时钟 • 软件扫描IDCODE • 降频法解决连接问题 💡 联调口诀 先量电源防冒烟,再看时钟稳不稳,最后连上调试器,三步走完心不慌。

这张图把咱们刚才讲的内容串起来了。从左到右,三步递进。每一步都有具体的检查方法和常见问题。你调试的时候,就按这个顺序来,基本不会漏掉什么。

好了,硬件连接检查就聊到这儿。记住,上电前多花十分钟检查,能省下后面十个小时的排错时间。这是经验之谈,也是血的教训。

📌 最后提醒一句: 别嫌麻烦。我见过太多人,电源没量就上电,结果板子烧了,芯片挂了,项目延期。硬件调试,慢就是快。