3. 示波器实战:测量PWM信号占空比、上升沿/下降沿时间,排查信号完整性问题

示波器这东西,做嵌入式的人天天见。但说实话,很多人只会看个波形有没有,真要测占空比、量上升沿,反而手忙脚乱。我刚开始带项目那会儿,就吃过这个亏——PWM驱动电机,板子跑起来总是一抖一抖的,查了半天代码没问题,最后用示波器一看,上升沿全是毛刺。嗯,从那以后,我每次调PWM都会先过一遍示波器。

这一章,咱们就实打实地测几个关键参数。你跟着我走一遍流程,以后遇到信号完整性问题,心里就有底了。

3.1 测量前的准备:探头补偿与通道设置

别急着夹信号。先做一件事——探头补偿。我个人习惯,每次换通道或者换探头,第一件事就是拿探头自带的补偿信号(一般是1kHz方波)校准一下。

我的习惯:把探头接到示波器自带的补偿输出端,用调节旋钮把方波调成“完美的直角”。如果看到圆角或者过冲,说明探头没匹配好,测出来的上升沿时间全是假的。

通道设置方面,我建议你这样配:

参数 推荐值 说明
耦合方式 DC PWM有直流分量,用DC才能看到真实电平
带宽限制 全带宽(或≥100MHz) 测上升沿需要高带宽,别开20MHz限制
探头衰减 1× 或 10× 低压信号用1×,高压用10×
垂直刻度 1V/div ~ 2V/div 让波形占屏幕60%~80%
注意:我曾经遇到过用10×探头但示波器忘记设置衰减比,结果读出来的电压全是错的。测之前看一眼探头上的开关,再确认一下屏幕上的衰减系数,这个习惯能救你一命。

3.2 测量PWM占空比:自动测量 vs 光标测量

占空比,说白了就是一个周期里高电平占了多大比例。示波器测这个有两种主流方法,我分别说说。

3.2.1 自动测量法(最快)

现在的数字示波器基本都有自动测量功能。你按下 Measure 键,选 Duty Cycle,屏幕直接出数字。我一般还会同时打开 Frequency 和 Pulse Width,三个参数一起看。

操作步骤(以某品牌示波器为例):
1. 按 Measure → 添加测量项
2. 选择 Duty Cycle(正占空比)
3. 选择 Frequency
4. 选择 +Width(正脉宽)
5. 读取屏幕下方统计值

自动测量的好处是快,但有个坑——如果波形有抖动或者噪声,示波器可能抓到错误的周期。我建议你多测几次,看平均值。

3.2.2 光标测量法(最准)

当自动测量结果可疑时,我会切到光标模式。用两根光标分别卡住高电平的起点和终点,手动读时间差。

操作步骤:
1. 按 Cursor → 选择 Voltage 或 Time
2. 光标A:放在高电平起始点(上升沿50%处)
3. 光标B:放在高电平结束点(下降沿50%处)
4. 读取 ΔX(脉宽)
5. 再用光标测一个完整周期 ΔX'
6. 占空比 = (脉宽 / 周期) × 100%
实战经验:我测过一个电机驱动的PWM,自动测量显示占空比50%,但电机就是转得不对。用光标一卡,发现高电平其实只有48.3%。差这1.7%,电机转速就偏了。所以关键场合,别偷懒,用光标。

3.3 测量上升沿/下降沿时间

上升沿时间,一般指信号从10%幅值上升到90%幅值所用的时间。下降沿同理。这个参数直接反映信号的驱动能力和走线质量。

示波器里通常有 Rise Time 和 Fall Time 的自动测量项。但我建议你手动确认一下示波器的“10%-90%”阈值设置对不对。有些示波器默认是20%-80%,测出来的结果会偏小。

信号类型 典型上升沿时间 说明
GPIO(3.3V CMOS) 2ns ~ 5ns 驱动能力强,沿很陡
PWM(MCU直出) 5ns ~ 20ns 取决于IO驱动配置
PWM(经电平转换) 20ns ~ 100ns 转换芯片会拖慢沿
PWM(经长走线) 可能 >100ns 走线电容太大,沿变缓
避坑指南:我曾经测一个24V工业PWM信号,上升沿显示1.2μs,觉得还行。后来换了100MHz带宽的探头,再测变成350ns。原来之前用的探头带宽不够,把沿“滤”圆了。记住:测上升沿,探头带宽至少要大于信号最高频率的5倍。

3.4 排查信号完整性问题

信号完整性问题,说白了就是波形“不干净”。我总结了三种最常见的PWM信号问题,你对照着看。

3.4.1 过冲与振铃

波形在上升沿之后冲过头,然后来回震荡。这通常是因为走线阻抗不匹配,或者驱动能力太强。

  • 现象:上升沿顶部出现一个尖峰,然后衰减振荡
  • 原因:阻抗不连续、走线过长、驱动电流过大
  • 对策:串联22Ω~33Ω电阻(源端匹配),或者减小驱动电流

3.4.2 沿变缓(上升沿太慢)

波形像“爬坡”一样慢慢上去。这会导致开关器件工作在放大区,发热严重。

  • 现象:上升沿时间超过信号周期的10%
  • 原因:走线电容太大、驱动能力不足、上拉电阻太大
  • 对策:增强驱动(加缓冲器)、减小走线长度、降低上拉电阻

3.4.3 噪声与抖动

波形上有毛刺,或者边沿位置在不停晃动。

  • 现象:高电平上有尖峰脉冲,或者边沿位置随机变化
  • 原因:电源噪声、地弹、串扰、时钟抖动
  • 对策:加强去耦、改善接地、远离干扰源
我的排查流程:先看上升沿时间是否在预期范围内 → 再看顶部有没有过冲 → 最后看边沿有没有抖动。三步下来,80%的信号问题都能定位。

3.5 知识结构图:PWM信号测量与排查体系

下面这张图,把整个测量流程串起来了。你以后拿到一个PWM信号,按这个思路走就行。

PWM信号测量与排查体系 PWM信号测量与排查体系 1. 探头补偿与通道设置 2. 测量占空比(自动/光标) 3. 测量上升沿/下降沿时间 4. 排查信号完整性问题 过冲与振铃 沿变缓 噪声与抖动 对策:串联匹配电阻 / 增强驱动 / 加强去耦 / 改善接地 —— 根据具体问题选择对应方案 ——

3.6 实战案例:一个真实的PWM问题排查

说个我自己的经历。有次调一个无刷电机驱动板,PWM频率20kHz,占空比50%。电机在低速时嗡嗡响,还发热。

我拿示波器一测,发现上升沿时间竟然有1.5μs。你想想看,20kHz的周期是50μs,上升沿就占了3%。这会导致MOS管在过渡区停留太久,功耗全变成热量了。

顺着走线查,发现PWM信号从MCU出来,经过一个10cm长的排线才到驱动板。排线本身有寄生电容,再加上驱动板输入端有个100pF的滤波电容,两者加起来把沿拖慢了。

解决办法很简单:在MCU输出端加一个74HC244缓冲器,增强驱动能力。改完后上升沿降到80ns,电机不叫了,温度也降了15°C。

我的经验:遇到PWM问题,先看沿,再看占空比,最后看噪声。这个顺序能帮你快速缩小范围。别一上来就怀疑代码,很多时候问题出在物理层。

3.7 本章小结

示波器测PWM,说白了就是三件事:占空比、沿时间、信号质量。你把这三点吃透了,大部分PWM相关的硬件问题都能搞定。记住,探头补偿是前提,光标测量是底线,波形形状是线索。下次遇到PWM异常,别慌,按这个流程走一遍,答案自然就出来了。