1、调试前的准备:认识万用表、示波器、逻辑分析仪,搭建最小调试环境

做嵌入式硬件调试这么多年,我最大的体会是:调试不是靠运气,而是靠工具和方法的组合。很多新手拿到板子不亮,第一反应是「再焊一块」,其实你手边的万用表就能告诉你答案。

这一章,咱们把三件套——万用表、示波器、逻辑分析仪——挨个捋一遍。不扯理论,只说实战中怎么用。

1.1 万用表:最基础的「听诊器」

万用表这东西,说白了就是测电压、电流、电阻。但很多人只会用蜂鸣档测通断,太浪费了。

核心用法(我个人的三板斧):

  • 测电源对地阻抗:上电前,先测VCC和GND之间的电阻。如果只有几欧姆,别上电,先查短路。我在项目中遇到过,新板子一上电就冒烟,就是因为没做这一步。
  • 测电压跌落:芯片不工作,先量供电引脚电压。如果标称3.3V,实测只有2.8V,那八成是电源带不动负载。
  • 二极管档测管脚:怀疑某个IO口烧了?用二极管档测对地压降。正常IO口对地压降在0.4V~0.7V之间,如果测出来是0V或者开路,那这个引脚大概率已经挂了。

小技巧: 测电阻时,手不要同时捏住两个表笔的金属头。人体电阻大概几百千欧,会严重干扰测量结果。嗯,我刚开始干的时候也犯过这个错。

1.2 示波器:看见「看不见的信号」

示波器是硬件工程师的眼睛。万用表只能告诉你「有没有电」,示波器能告诉你「电是怎么变化的」。

调试中最常用的几个场景:

  • 看电源纹波:AC耦合,20MHz带宽限制,探头打到10×档。如果纹波超过50mV,MCU可能会随机复位。我曾经被一个100mV的纹波坑了整整两天,后来发现是去耦电容离芯片太远了。
  • 看时钟波形:晶振不起振?用示波器探头点一下晶振引脚。正常波形是漂亮的正弦波,峰峰值在1V以上。如果波形是平的或者只有几百毫伏,查晶振负载电容和MCU配置。
  • 看通信波形:I2C、SPI、UART,这些协议好不好使,看波形最直观。比如I2C的SCL和SDA,上升沿太缓(超过1μs),说明上拉电阻太大了。

注意: 示波器的地线夹子一定要夹在板子的GND上,而且越近越好。地线夹子本身就是一个天线,夹得太远会把噪声引入测量结果。你想想看,测出来的纹波到底是板子本身的,还是你探头引入的?

1.3 逻辑分析仪:调试数字协议的「翻译官」

示波器看模拟信号,逻辑分析仪看数字信号。说白了,它只关心高电平还是低电平,不关心具体电压是多少。

什么时候该用逻辑分析仪?

  • 调试I2C、SPI、UART等协议:示波器只能看一两根线,逻辑分析仪可以同时看8根、16根甚至更多。而且它能自动解码,直接告诉你「地址是0x50,数据是0xA5」。
  • 分析时序问题:比如某个引脚应该在10μs后拉高,实际却等了20μs。逻辑分析仪可以精确到纳秒级,一眼就能看出问题。
  • 抓取偶发故障:设置一个触发条件,比如「当CS引脚拉低时开始捕获」。然后让板子跑着,等故障复现。逻辑分析仪会自动把故障前后的波形记录下来。

我的习惯: 调试新板子时,我会先把MCU的UART TX引脚接到逻辑分析仪上。这样只要MCU跑起来了,我就能看到串口数据。如果连串口数据都没有,那说明MCU压根没启动——省得在软件上浪费时间。

1.4 搭建最小调试环境

工具都认识了,接下来就是搭环境。一个最小调试环境,其实不需要多复杂:

工具/设备 推荐型号(个人经验) 备注
万用表 Fluke 15B+ 或 优利德 UT61E 自动量程,带真有效值
示波器 Rigol DS1054Z 或 普源 MSO5000系列 4通道,100MHz带宽起步
逻辑分析仪 Saleae Logic 8 或 国产梦源 8通道以上,采样率100MHz
可调电源 固纬 GPD-3303S 带限流功能,防止烧板
杜邦线/探头 硅胶线,带钩子 钩子探头比尖头好用十倍

搭建步骤其实很简单:

  1. 上电前检查:万用表测电源对地阻抗,确认没有短路。
  2. 上电后测电压:确认各供电节点电压正常。
  3. 看时钟:示波器点晶振,确认MCU有时钟。
  4. 看复位:示波器看复位引脚,确认不是一直处于复位状态。
  5. 看启动:逻辑分析仪抓UART TX,确认MCU在跑代码。

避坑指南: 我曾经遇到过一块板子,上电后电流正常,时钟正常,复位正常,但就是没串口输出。折腾了半天,最后发现是MCU的BOOT引脚电平不对,芯片压根没从Flash启动。从那以后,我每次调试新板子,第一件事就是确认BOOT引脚的电平。

好了,工具和环境都准备好了。下一章咱们开始实战——怎么用万用表快速定位短路和虚焊。这些东西看着简单,但真到了现场,能帮你省下大把时间。