1. 调试基础:万用表使用技巧、示波器探头选择与补偿、逻辑分析仪触发设置
做硬件调试这么多年,我越来越觉得一个道理:调试水平的高低,往往不取决于你用了多贵的仪器,而在于你对手里工具的理解有多深。万用表、示波器、逻辑分析仪——这三样东西,几乎每个硬件工程师桌上都有。但说实话,能把它们用透的人,真不多。
这一章,咱们就聊聊这三样基础工具。我不会跟你念说明书,而是把我这些年踩过的坑、总结的经验,直接摆出来。
1.1 万用表:不只是测通断
很多人觉得万用表太简单了,不就是测个电压、电阻嘛。嗯,确实基础操作不难,但想用它快速定位问题,还是有些门道的。
1.1.1 电压测量——先看参考点
测电压时,我习惯先确认参考地。有一次,一个同事拿着板子说3.3V电源只有2.8V,怀疑电源芯片坏了。我拿表笔一测,发现他的参考地选错了——板子上有两个地平面,中间只有一颗0Ω电阻连接,电阻虚焊了。所以,测电压前,先确认你的黑表笔接的是真正的系统地。
1.1.2 电阻测量——断电!放电!
这个我必须要强调:测电阻前,板子必须断电,并且要等电容放完电。我曾经有一次,测一个上拉电阻,没等板子完全放电,万用表直接显示OL(超量程)。我还以为是电阻开路,换了颗新的,结果问题依旧。后来才发现,是板子上有个大电容还在放电,影响了测量结果。
测电阻时,还有个小技巧:用二极管档测PCB上的走线通断。二极管档会发出蜂鸣声,比看电阻值快得多。排查短路时,我经常用这个功能。
1.1.3 电流测量——别烧表
测电流是最容易烧表的操作。记住一个原则:电流表要串联在回路中。很多人习惯把表笔直接怼在电源和地之间测电流——那相当于短路,瞬间就会烧掉保险丝。
我个人的做法是:先用钳形表估个大概,如果电流很小(mA级),再用万用表的电流档串联测量。而且,一开始先用最大量程,看到读数后再切换到合适档位。
| 测量类型 | 关键要点 | 常见错误 |
|---|---|---|
| 电压 | 确认参考地、表笔并联 | 参考地选错、表笔接反 |
| 电阻 | 断电、放电、用二极管档测通断 | 带电测量、电容未放电 |
| 电流 | 串联、先大量程、注意保险丝 | 并联测量、量程过小 |
1.2 示波器探头:信号进门的“第一道关”
示波器探头,说白了就是信号进入示波器之前的“通道”。这个通道的质量,直接决定了你看到的波形是真实的,还是失真的。
1.2.1 探头类型怎么选?
市面上最常见的探头有三种:
- 无源探头(10×):最常用,带宽一般够用,输入电容约10-15pF。适合测一般数字信号、低频模拟信号。
- 有源探头:输入电容小(<1pF),带宽高。适合测高速信号,比如DDR、高速串行总线。
- 差分探头:测差分信号专用,比如USB、HDMI、CAN总线。
我个人的建议是:日常调试,一根好的10×无源探头就够了。但如果你经常测高速信号,还是得备一根有源探头。别想着用无源探头去测100MHz以上的时钟——你看到的波形,可能已经变形了。
1.2.2 探头补偿——这一步别省
很多人拿到示波器,插上探头就开始测。其实,探头补偿是必须做的第一步。为什么?因为探头本身有输入电容,这个电容会和示波器的输入阻抗形成一个RC分压网络。如果补偿不对,测出来的波形幅度和形状都会有偏差。
怎么做?很简单:
- 把探头接到示波器自带的1kHz方波校准信号上。
- 用示波器自带的非金属螺丝刀,调节探头上的补偿电容。
- 直到屏幕上显示一个完美的方波——上升沿和下降沿没有过冲,也没有圆角。
我记得有一次,一个同事说他的示波器测出来的时钟频率总是不对。我过去一看,探头根本没补偿,方波都快变成正弦波了。补偿完之后,问题立刻解决。
1.2.3 接地线——越短越好
探头自带的接地线,通常是一根长长的鳄鱼夹线。但你要知道,这根地线本身就是一个“天线”,会引入噪声和振铃。
测高频信号时,我强烈建议你:用探头自带的弹簧接地夹,或者干脆用铜箔直接搭在探头的地环上。接地线越短,引入的寄生电感越小,测出来的波形越干净。
1.3 逻辑分析仪:触发设置是关键
逻辑分析仪,说白了就是“多通道的示波器”,但它只关心信号的高低电平,不关心具体的电压值。它最强大的地方,在于触发功能。
1.3.1 触发——让信号“停下来”
没有触发,逻辑分析仪就是一串乱码。触发的作用,就是告诉仪器:“当出现这个条件时,开始记录数据。”
常见的触发类型有:
- 边沿触发:上升沿或下降沿触发。最简单,适合看单个信号的变化。
- 码型触发:多个信号同时满足某个电平组合时触发。比如“CS为低、SCLK为上升沿、MOSI为高”。
- 序列触发:先满足条件A,再满足条件B,才触发。适合调试复杂的协议交互。
我个人用得最多的是码型触发。比如调试SPI总线时,我会设置触发条件为“片选信号CS拉低,同时时钟SCLK的第一个上升沿”。这样,每次通信开始时,逻辑分析仪就会自动捕获数据。
1.3.2 采样深度——够用就好
逻辑分析仪的采样深度是有限的。很多人喜欢把采样深度设到最大,觉得这样能抓到更多数据。但采样深度越大,分析仪的处理时间越长,而且你需要在海量数据里找那个关键点。
我的做法是:先设一个较小的采样深度(比如1K采样点),确认触发条件正确后,再根据需要增加。这样能快速验证触发设置,避免浪费时间。
1.3.3 实际案例:抓一个I²C通信异常
有一次,我调试一个I²C设备,发现主设备偶尔会收不到从设备的应答信号(ACK)。用逻辑分析仪抓数据,一开始怎么都抓不到异常。后来我设置了码型触发:SDA在SCL的第9个时钟周期(ACK位)为高电平。这样,只要出现NACK(无应答),逻辑分析仪就会立刻捕获。
结果一抓一个准。发现是从设备在某个特定条件下,内部状态机卡住了,没有拉低SDA。这个bug,如果没有逻辑分析仪的码型触发,靠肉眼盯波形,不知道要盯到什么时候。
1.4 本章知识体系
下面这张图,是我对本章内容的梳理。你可以把它当作一个快速参考: