4、触发设置:逻辑分析仪的边沿触发、模式触发;示波器的上升沿/下降沿触发

触发,说白了就是让仪器在正确的时间点「停下来等你」。

我刚开始用逻辑分析仪和示波器那会儿,最头疼的就是信号满屏乱跳,根本看不清细节。后来才明白——触发没设对,一切都是白搭。今天咱们就聊聊这两个仪器的触发设置,尤其是它们联合调试时该怎么配合。

4.1 逻辑分析仪的边沿触发

边沿触发是最基础、最常用的触发方式。逻辑分析仪检测的是数字信号的跳变沿——上升沿或下降沿。

上升沿触发:当信号从低电平(0)跳变到高电平(1)时触发。

下降沿触发:当信号从高电平(1)跳变到低电平(0)时触发。

我个人习惯在调试SPI、I2C这类同步串行总线时,用时钟信号的上升沿作为触发条件。为什么?因为数据通常在时钟沿被采样,你抓住这个沿,就能看到前后完整的数据窗口。

关键点:边沿触发可以指定任意通道,也可以指定任意边沿方向。逻辑分析仪通常支持同时设置多个通道的边沿条件,比如「通道0上升沿且通道1下降沿」。

我在项目中遇到过一个问题:调试一个MIPI DSI接口时,数据线总是偶尔出现毛刺。我设了下降沿触发,抓了几次都没抓到。后来改成上升沿触发,配合预触发深度,才看到那个毛刺其实发生在时钟上升沿之后几百纳秒——原来是驱动芯片的建立时间不够。

4.2 逻辑分析仪的模式触发

模式触发比边沿触发高级一些。它允许你定义一个特定的电平组合(模式),当所有指定通道同时满足这个组合时,触发发生。

举个例子:你想抓一个I2C的START条件——SCL为高、SDA从高变低。用边沿触发只能抓SDA的下降沿,但无法保证SCL此时是高电平。模式触发就能搞定:设置SCL=1,SDA=0,然后触发。

模式触发的典型应用场景

  • 抓取总线上的特定地址或命令
  • 检测多个信号同时满足某个状态
  • 调试握手协议中的特定状态组合

小技巧:我建议在调试复杂协议时,先用模式触发抓一个已知的正常波形,确认触发条件正确后,再调整预触发深度去抓异常情况。这样能大大减少无效抓取次数。

模式触发还有一个变种——「序列触发」。你可以定义多个模式按顺序出现,比如先出现模式A,再出现模式B,然后才触发。这个在调试状态机时特别有用。我曾经用序列触发抓到一个DMA传输中的地址跳变错误,那个bug藏得很深,普通触发根本抓不到。

4.3 示波器的上升沿/下降沿触发

示波器的边沿触发和逻辑分析仪类似,但有个重要区别:示波器处理的是模拟信号,它有一个「触发电平」的概念。

上升沿触发:信号从低于触发电平上升到高于触发电平时触发。

下降沿触发:信号从高于触发电平下降到低于触发电平时触发。

你想想看,如果触发电平设得太高,上升沿可能永远触发不了;设得太低,噪声就可能误触发。我一般把触发电平设在信号幅度的50%左右,这样最稳定。

触发类型 适用场景 注意事项
上升沿触发 时钟信号、数据起始位、使能信号 触发电平要避开噪声区域
下降沿触发 复位信号、中断信号、数据结束位 注意信号是否有毛刺导致误触发
边沿+脉宽 捕获特定宽度的脉冲 需要示波器支持高级触发

示波器还有一个「噪声抑制」功能,我建议在信号质量较差时开启。它会滤除高频噪声,防止误触发。但要注意——开启后触发灵敏度会下降,太小的信号可能触发不了。

4.4 联合调试时的触发配合

这才是今天的重点。逻辑分析仪和示波器一起用,触发怎么配合?

方案一:逻辑分析仪做主触发,示波器做从触发

逻辑分析仪检测到特定数字模式后,输出一个触发信号给示波器。示波器用这个信号作为外部触发源。这样,示波器就能精确捕获数字事件发生时的模拟波形。

具体做法:

  1. 逻辑分析仪设置模式触发,比如抓到I2C的START条件
  2. 逻辑分析仪的触发输出口连接到示波器的外部触发输入
  3. 示波器设置为外部触发模式,触发电平设为TTL电平(约1.5V)
  4. 同时观察数字总线和模拟波形

注意:逻辑分析仪的触发输出信号通常有几十纳秒的延迟。如果信号频率很高(比如超过50MHz),这个延迟可能导致示波器捕获到的波形和实际事件有偏差。我建议在低速信号(10MHz以下)时使用这种方案。

方案二:示波器做主触发,逻辑分析仪做从触发

反过来也行。示波器检测到模拟信号上的异常(比如过冲、振铃),输出触发信号给逻辑分析仪,让逻辑分析仪记录此时的总线数据。

这个方案我用的不多,因为示波器的触发输出通常只有简单的边沿触发,灵活性不如逻辑分析仪。但如果你怀疑某个模拟问题是由数字信号引起的,这个方案就很合适。

方案三:独立触发,时间戳对齐

两个仪器各自独立触发,然后通过时间戳对齐数据。这个方案要求两个仪器都有高精度的时间戳功能,而且时钟要同步。说实话,我很少用这个方案——太麻烦,而且对齐精度有限。

嗯,这里要注意:无论用哪种方案,触发点的位置都很关键。我一般把预触发深度设为总采样深度的10%~20%,这样既能看触发前的状态,又能看触发后的完整响应。

最后分享一个经验:调试时别急着设复杂的触发条件。先用最简单的边沿触发确认信号是否存在、幅度是否正常、时序是否大致正确。等这些基础问题排查完了,再上模式触发去抓特定事件。一步一步来,反而更快。