第2章 硬件调试基础:万用表与示波器使用、电源与时钟测量、复位电路检查、Boot模式配置

硬件调试,说白了就是给板子“把脉”。你写再多软件,硬件底子不行,一切白搭。我见过太多工程师拿着示波器不知道怎么下手,或者万用表只会测通断。这一章,咱们就把这些基本功练扎实。

2.1 万用表:最基础的“听诊器”

万用表这东西,看着简单,用好了能解决80%的硬件问题。我个人习惯,上电前必做三件事:

  • 测短路:用蜂鸣档测电源对地,响就说明有短路。别急着上电,先查。
  • 测电阻:特别是上拉/下拉电阻,焊错了会导致IO电平不对。
  • 测二极管:检查保护二极管方向,焊反了会直接烧。
我的习惯: 每次拿到新板子,先用万用表把电源网络全部扫一遍。曾经有一块板子,3.3V对地只有2Ω,查了半天发现是MLCC电容焊接时连锡了。要是直接上电,电容炸了不说,主控也得跟着遭殃。

2.2 示波器:看波形的“眼睛”

示波器比万用表高级,但很多人只会看个大概。我建议你重点练三个场景:

2.2.1 电源纹波测量

测电源纹波时,探头要打到10×档,带宽限制打开(通常20MHz)。地线夹子要短,最好用地弹簧。为什么?因为长地线会引入噪声,你看到的纹波可能不是真实的。

关键参数: STM32的电源纹波要求一般在50mV以内。超过这个值,ADC采样会跳,系统可能随机复位。

2.2.2 时钟信号测量

测晶振波形时,探头电容会影响起振。我遇到过好几次,探头一搭上去,波形就没了。解决办法:用10×档,或者用有源探头。实在不行,测晶振输出脚(OSC_OUT)而不是输入脚(OSC_IN)。

2.2.3 复位信号测量

复位信号是低电平有效。上电时,NRST引脚应该先拉低再拉高。用示波器的单次触发模式,触发电平设在1.5V左右,就能抓到完整的复位波形。

注意: 如果复位波形有毛刺,或者拉低时间不够(STM32要求至少1ms),系统会反复复位。我曾经被这个问题坑过,查了三天才发现是复位电容焊错了容值。

2.3 电源与时钟测量实战

咱们拿STM32F103最小系统板举例,看看怎么测。

测量项 工具 正常值 异常排查
VDD(3.3V) 万用表 3.3V ± 0.1V 检查LDO输出、滤波电容
VDDA(模拟电源) 万用表 3.3V ± 0.05V 检查磁珠、去耦电容
HSE(8MHz晶振) 示波器 8MHz ± 1% 检查晶振负载电容、起振条件
LSI(40kHz内部RC) 示波器 约40kHz 精度差,正常现象

测HSE时,我习惯先测晶振两脚的直流电压。正常时,两脚电压应该在1.5V左右(VDD/2)。如果一脚是0V另一脚是3.3V,说明晶振没起振,或者芯片内部振荡器没使能。

2.4 复位电路检查

复位电路看着简单,就一个电阻一个电容。但问题往往出在这里。

  • 上电复位时间:RC常数决定。R=10kΩ,C=100nF,时间常数τ=1ms。STM32要求复位低电平至少维持1μs,但实际设计中我们通常留10倍余量。
  • 手动复位按钮:按下时拉低NRST,松开后电容充电,NRST上升。如果按钮有抖动,需要加施密特触发器或软件消抖。
  • 外部看门狗复位:如果用了外部看门狗,NRST会被周期性拉低。这时候测复位波形,应该能看到规律的脉冲。
避坑指南: 我曾经遇到过一块板子,上电后偶尔启动不了。用示波器抓复位波形,发现NRST上升沿有回勾。原因是复位电容离芯片太远,走线长了,寄生电感导致振铃。解决办法:把电容挪到芯片引脚旁边,问题解决。

2.5 Boot模式配置

STM32的Boot模式,说白了就是决定芯片从哪里启动。三个选项:

BOOT0 BOOT1 启动区域 典型用途
0 X 主Flash 正常运行
1 0 系统存储器(Bootloader) 串口下载、固件升级
1 1 SRAM 调试、测试

调试时,我经常把BOOT0拉高,从系统存储器启动。这样可以用串口下载程序,即使Flash里的程序跑飞了也不怕。等程序调好了,再把BOOT0拉回低电平。

注意: BOOT0和BOOT1引脚在芯片内部有弱下拉,但外部最好接10kΩ电阻到地或VDD。悬空时,电平不确定,可能导致启动失败。我见过有人直接飞线,结果线松了,芯片死活不跑。

2.6 知识体系总览

下面这张图,把本章的核心逻辑串起来了。你对照着看,心里就有谱了。

硬件调试基础 - 知识体系 硬件调试基础 - 知识体系 硬件调试基础 万用表 示波器 复位电路 Boot模式 测短路 测电阻 电源纹波 时钟波形 复位信号 RC时间常数 手动复位 主Flash 系统存储器 SRAM 核心原则 先测电源,再测时钟,最后测复位。Boot模式确认无误后,再上电跑程序。

嗯,这一章的内容就这些。工具和方法都给你了,剩下的就是多练。下次拿到一块新板子,别急着写代码,先拿万用表和示波器走一遍流程。你会发现,很多问题在硬件阶段就能解决。