4、示波器触发设置:边沿触发、脉宽触发、I2C专用触发、SPI专用触发、触发耦合

调试I2C和SPI,说白了就是跟波形打交道。但波形不会自己告诉你哪里出问题了——你得学会「问对问题」。怎么问?靠触发。

触发设置,是示波器最核心的技能之一。我见过太多工程师,拿着几万块的示波器,却只会用Auto Set。波形是出来了,但根本抓不到异常。嗯,这就像你有一把好枪,却只会朝天放。

这一章,我把常用的触发方式掰开揉碎讲清楚。每种触发都有它的脾气,用对了,事半功倍。

4.1 边沿触发:最基础,也最常用

边沿触发是示波器的默认触发方式。说白了,就是当信号从低变高(上升沿)或从高变低(下降沿)时,示波器开始采集。

我个人习惯,调试I2C和SPI时,先把边沿触发设好。为什么?因为这是最快看到波形的方法。

关键设置参数:

  • 触发源:选择你要观察的信号通道(CH1、CH2等)
  • 触发斜率:上升沿(↗)或下降沿(↘)
  • 触发电平:设定在信号幅度的50%左右最稳定

举个例子。调试I2C的SCL时钟线,我会把触发电平设在1.65V(3.3V系统的一半)。这样每次时钟上升沿,示波器都会触发。波形稳定了,才能往下看。

小技巧:触发电平不是随便设的。设得太高或太低,触发会不稳定,波形会乱跳。我一般先看信号的Vmax和Vmin,然后取中间值。

4.2 脉宽触发:抓异常的好帮手

边沿触发只能看「有没有信号」,但抓不到「信号对不对」。这时候,脉宽触发就派上用场了。

脉宽触发,就是设定一个时间范围。当脉冲宽度在这个范围内(或范围外)时,示波器才触发。这招在调试I2C和SPI时特别有用。

我记得有一次,SPI的时钟信号偶尔会多出一个窄脉冲。用边沿触发根本抓不到,因为大部分时候波形是正常的。后来我设了脉宽触发,条件设为「脉宽小于正常时钟周期的一半」。嘿,那个毛刺脉冲一下子就现形了。

脉宽触发常用场景:

  • 抓毛刺:设脉宽小于正常脉冲宽度
  • 抓丢失脉冲:设脉宽大于正常脉冲宽度
  • 抓异常窄脉冲:I2C的START条件异常时,经常出现

具体怎么设?以I2C为例。正常SCL时钟高电平时间大约是5μs。我设脉宽触发条件为「脉宽 < 1μs」。这样,只要出现异常窄脉冲,示波器立刻触发,把波形定格下来。

注意:脉宽触发对时间基准设置很敏感。时间基准设得太快,可能抓不到慢速的异常;设得太慢,又可能漏掉快速脉冲。我建议先设一个中间值,然后根据捕获结果微调。

4.3 I2C专用触发:专为I2C协议设计

如果你经常调I2C,这个功能你一定要会用。I2C专用触发,能直接识别START条件、STOP条件、ACK/NACK、甚至特定的地址和数据。

说实话,我第一次用这个功能时,感觉像开了挂。以前要手动算时序,现在示波器直接帮你把协议层解析出来了。

I2C专用触发类型:

触发类型 说明 典型应用场景
START条件 SCL高电平时SDA下降沿 检查通信是否正常开始
STOP条件 SCL高电平时SDA上升沿 检查通信是否正常结束
ACK/NACK 第9个SCL时钟后的SDA电平 检查从机是否应答
地址匹配 指定7位或10位从机地址 只抓特定设备的通信
数据匹配 指定特定的数据字节 抓取特定数据内容

我建议你重点掌握「地址匹配触发」。为什么?因为I2C总线上可能挂着多个设备。你只想看某个传感器的通信,用地址匹配触发,示波器就只抓那个设备的波形。其他设备的通信,自动忽略。

举个例子。总线上有温度传感器(地址0x48)和加速度计(地址0x68)。我想看温度传感器的数据。设地址匹配触发为0x48,示波器就只抓温度传感器的通信。干净利落。

避坑指南:我曾经遇到一个情况,I2C通信时有时无。用地址匹配触发,发现从机偶尔不发送ACK。后来查出来是从机电源不稳。如果没有专用触发,这种间歇性故障很难抓到。

4.4 SPI专用触发:抓住片选和时钟

SPI的专用触发,核心是片选信号(CS)和时钟信号(SCLK)。跟I2C不同,SPI没有地址概念,所以触发方式更直接。

SPI专用触发类型:

触发类型 说明 典型应用场景
CS触发 片选信号的上升沿或下降沿 检查通信开始和结束
SCLK触发 时钟信号的边沿 检查时钟质量
MISO/MOSI数据触发 指定数据线上的特定数据模式 抓取特定数据内容
帧触发 CS有效期间的数据帧 检查完整的数据帧

我个人最常用的是CS触发。为什么?因为SPI通信的起始和结束,完全由CS信号决定。设CS下降沿触发,就能抓到一次完整的SPI通信。

但要注意一点:有些SPI设备会在CS有效期间连续发送多个字节。这时候,用帧触发更合适。帧触发会把CS有效期间的所有数据当作一帧来捕获,不会漏掉中间的数据。

注意:SPI的时钟极性和相位(CPOL和CPHA)会影响触发。如果你的示波器支持SPI解码,一定要先设对CPOL和CPHA。否则,触发可能不准,解码也会出错。

4.5 触发耦合:别让噪声干扰你的触发

触发耦合,很多人会忽略。但它直接影响触发的稳定性。

触发耦合有几种模式:DC耦合、AC耦合、高频抑制、低频抑制。每种模式的作用不同。

触发耦合模式对比:

耦合模式 作用 适用场景
DC耦合 直接通过直流分量 大多数数字信号
AC耦合 滤除直流分量 信号有较大直流偏置时
高频抑制 滤除高频噪声 信号上有高频毛刺时
低频抑制 滤除低频干扰 电源纹波干扰触发时

调试I2C和SPI时,我默认用DC耦合。但有一种情况例外——当信号上有较大的直流偏置时。比如,I2C的上拉电阻没选好,导致SDA线的低电平不是0V,而是0.5V。这时候,用DC耦合触发可能不稳定。换成AC耦合,滤掉直流分量,触发就稳了。

还有一种情况,信号上有高频毛刺。毛刺会导致误触发。这时候,打开高频抑制,毛刺被滤掉,触发就干净了。

小技巧:如果你发现示波器触发不稳定,先别急着调触发电平。试试切换触发耦合模式。我遇到过好几次,其实就是耦合模式没选对。

4.6 实战:用触发抓I2C总线锁死

讲完理论,来个实战案例。

有一次,客户反馈I2C总线偶尔锁死。用边沿触发,只能看到波形正常。用脉宽触发,设了异常窄脉冲,也没抓到。后来我用I2C专用触发,设了「STOP条件丢失」触发。

你猜怎么着?一抓一个准。波形显示,主机发送完数据后,没有发送STOP条件,而是直接拉低了SCL。从机一直在等STOP,结果就锁死了。

这个案例说明什么?不同的触发方式,解决不同的问题。边沿触发看「有没有」,脉宽触发看「对不对」,协议专用触发看「是什么」。

总结一下触发选择思路:

  • 先看波形:用边沿触发,确认信号存在
  • 再查异常:用脉宽触发,抓毛刺和丢失脉冲
  • 深入协议:用I2C/SPI专用触发,分析协议层问题
  • 稳定触发:选对触发耦合,排除噪声干扰

嗯,这一章的内容就到这里。触发设置是门手艺活,光看不行,得上手练。下一章,我们聊聊如何用示波器分析I2C和SPI的时序参数。