第2章:硬件调试基础——从万用表到逻辑分析仪

硬件调试,说白了就是跟电路板“对话”。你得听懂它在说什么,它哪里不舒服。我做了十几年嵌入式,最深的体会就是:工具用得顺手,问题解决快一半。这一章,咱们就把几个最常用的硬件调试工具捋一遍。

本章核心:掌握万用表、示波器、逻辑分析仪的基本操作,学会测量电源纹波。这些是排查硬件故障的“听诊器”和“X光机”。

2.1 万用表使用技巧——不只是测通断

很多新手觉得万用表就是测个电压、量个电阻。其实不然。我习惯把万用表当成“第一道防线”。板子拿来,先别上电,用万用表扫一遍电源对地阻抗,能避免很多烧板子的悲剧。

2.1.1 上电前的“三测”

我个人习惯,拿到一块新板子,上电前必须做三件事:

  1. 测电源对地阻抗:用电阻档(200Ω或2kΩ档),红表笔接电源,黑表笔接地。正常值应该在几百Ω以上。如果接近0Ω,别上电,先查短路。
  2. 测关键引脚对地:比如复位引脚、BOOT引脚。确保没有意外短路。
  3. 测电源电压:上电后,用直流电压档测3.3V、5V等关键节点。偏差超过5%就要警惕。

小技巧:测电压时,我习惯用“相对测量”功能。先把表笔短接,按REL键归零,再测。这样能消除表笔内阻和接触电阻的影响,尤其测小电阻时特别有用。

2.1.2 二极管档的妙用

万用表的二极管档,不只是测二极管。我经常用它来:

  • 判断MOS管好坏:测G-S、G-D之间的PN结正向压降,正常在0.4V~0.7V之间。
  • 查找短路点:如果电源对地短路,用二极管档测,蜂鸣器响的那个点就是短路点附近。
  • 判断芯片是否损坏:测芯片电源引脚对地的二极管特性,如果正反向都导通或都不通,芯片大概率挂了。

注意:千万不要在板子通电的情况下用电阻档或二极管档!万用表内部电池的电压可能会烧坏电路。我见过有人带电测电阻,直接把一个BGA芯片干废了。

2.2 示波器基础操作——看见信号的样子

万用表只能告诉你“有没有电”,示波器能告诉你“电长什么样”。对于STM32调试来说,示波器是排查时序问题、信号完整性问题的主力工具。

2.2.1 探头补偿——很多人忽略的第一步

拿到示波器,第一件事不是接信号,而是做探头补偿。我记得刚入行时,有次测一个SPI时钟,波形怎么看怎么不对,折腾了半天才发现是探头没补偿好。

操作很简单:把探头接到示波器自带的1kHz方波输出端,用非金属螺丝刀调节探头上的微调电容,直到屏幕上的方波变得“方正”,没有过冲或圆角。

波形形状 问题 解决方法
方波顶部上翘(过冲) 补偿过度 逆时针微调电容
方波顶部圆角(欠冲) 补偿不足 顺时针微调电容
方波顶部平直 补偿正确 不用调

2.2.2 触发设置——让波形“站住”

示波器最让人头疼的就是波形乱跳。其实只要触发设对了,波形就能稳定。我一般这样设:

  • 触发源:选你要看的那个信号通道。
  • 触发类型:测数字信号用“边沿触发”,测模拟信号用“脉宽触发”或“视频触发”。
  • 触发电平:调到信号幅度的中间位置。比如3.3V的方波,触发电平设在1.65V左右。
  • 触发模式:正常模式(Normal)用于看特定事件,自动模式(Auto)用于看连续信号。

实战经验:测STM32的SPI或I2C时,我习惯把触发源设成时钟信号,触发电平设在1.65V,然后调时间档位到能看到一个完整的数据帧。这样波形基本不会跑。

2.3 逻辑分析仪入门——数字信号的“照妖镜”

示波器看模拟细节,逻辑分析仪看数字时序。对于STM32这种数字芯片,逻辑分析仪比示波器更适合分析协议时序。我建议每个做嵌入式的人都备一个便宜的24通道逻辑分析仪,几十块钱,但能省你几天时间。

2.3.1 采样率与存储深度

这两个参数决定了你能看到什么:

  • 采样率:至少要大于信号最高频率的4倍。测SPI(几十MHz)需要100MHz以上的采样率。
  • 存储深度:决定了你能连续采集多长时间的数据。测I2C这种慢速协议,存储深度要够大,不然只能看到一帧。
信号类型 推荐采样率 推荐存储深度
UART (115200bps) ≥1MHz ≥1Mpts
I2C (400kHz) ≥4MHz ≥2Mpts
SPI (18MHz) ≥100MHz ≥4Mpts
PWM (1kHz) ≥10MHz ≥512kpts

2.3.2 协议解码——让数据说话

逻辑分析仪最强大的功能就是协议解码。我曾经排查过一个I2C通信故障,示波器看了半天没看出问题,用逻辑分析仪一解码,发现是从设备地址错了1个bit。

操作步骤:

  1. 把信号线接到逻辑分析仪的通道上(注意共地)。
  2. 在软件里设置对应的协议(UART/I2C/SPI等)。
  3. 设置正确的波特率或时钟频率。
  4. 点击采集,看解码结果。

避坑指南:我曾经遇到过逻辑分析仪解码出来的数据全是乱码,折腾了半天才发现是地线没接好。记住:逻辑分析仪的地线必须和被测板子共地,否则信号全是浮空的。

2.4 电源纹波测量——给电源“体检”

STM32对电源质量要求不低。纹波太大,轻则ADC采样不准,重则系统死机。我见过一个项目,设备偶尔重启,查了两个月,最后发现是电源纹波超标。

2.4.1 测量方法

测纹波不能用普通探头直接怼,那样会引入噪声。正确做法:

  1. 用同轴电缆或BNC转接头:直接焊在电源输出端,减少环路面积。
  2. 示波器设置:AC耦合,20MHz带宽限制,垂直档位调到10mV/div或更小。
  3. 测量位置:在负载端测,不要在电源模块输出端测。负载端的纹波才是芯片实际看到的。

2.4.2 纹波指标

对于STM32F103,电源纹波一般要求:

  • 3.3V数字电源:纹波峰峰值 ≤ 50mV
  • 3.3V模拟电源(VDDA):纹波峰峰值 ≤ 10mV
  • 1.8V内核电源(如果外部供电):纹波峰峰值 ≤ 30mV

我的习惯:测纹波时,我会在示波器上打开“测量”功能,直接看峰峰值和有效值。如果峰峰值超过指标,我会先检查输出电容是否虚焊,再考虑换LDO或加磁珠。

2.5 本章知识体系

下面这张图总结了本章的核心内容,帮你快速建立硬件调试的知识框架:

硬件调试工具知识体系 硬件调试基础工具知识体系 硬件调试工具 万用表 示波器 逻辑分析仪 电源纹波测量 上电前三测 二极管档妙用 短路查找 探头补偿 触发设置 波形分析 采样率选择 协议解码 时序分析 同轴电缆法 AC耦合+20M限 负载端测量 核心原则:先万用表排查短路 → 示波器看信号质量 → 逻辑分析仪抓协议时序 电源纹波测量贯穿始终,是系统稳定性的基础

这张图把四个工具的关系和各自的核心应用场景串起来了。你想想看,排查问题时按这个顺序走,基本不会漏掉什么。