一、触发系统入门:触发概念、触发位置与触发模式

大家好,我是老张。今天咱们聊聊逻辑分析仪最核心的功能——触发系统。

说实话,我刚入行那会儿,觉得触发就是个「开始采集」的按钮。后来被坑了几次才明白,触发系统才是逻辑分析仪的灵魂。你想想看,没有触发,就像在漆黑的隧道里拍照——快门按了,但拍到的全是黑暗。

1.1 触发到底是什么?

触发,说白了就是告诉逻辑分析仪:「嘿,注意了,我要抓这个信号!」

举个例子。你在调试一个SPI通信,想看看片选信号CS拉低之后,时钟和数据是怎么传输的。如果没有触发,分析仪只会傻乎乎地从头录到尾,你得像大海捞针一样去找那段数据。

有了触发就不一样了。你设置「CS下降沿」为触发条件,分析仪就会一直等待这个条件。一旦CS拉低,它立刻开始记录——就像守株待兔,但这次兔子真的会来。

核心要点:触发条件 = 你关心的信号事件。它告诉分析仪「什么时候开始认真记录」。

我在项目中遇到过最典型的例子:调试I2C总线时,设备偶尔会无响应。我设置触发条件为「SCL时钟连续9个周期后SDA仍为高」,一下子就抓到了那个异常时序。如果没有触发,可能得录几个小时的数据才能找到一次异常。

1.2 触发位置:预触发与后触发

很多人以为触发就是「从触发点开始记录」。其实不是。逻辑分析仪可以记录触发点之前和之后的数据。

这就引出了两个概念:预触发(Pre-trigger)和后触发(Post-trigger)。

参数 预触发(Pre-trigger) 后触发(Post-trigger)
记录内容 触发条件发生之前的数据 触发条件发生之后的数据
典型用途 查看导致触发的原因 查看触发后的行为
存储占比 通常占10%~50% 通常占50%~90%

预触发:我个人习惯把预触发设到25%左右。为什么?因为我想知道「触发之前发生了什么」。比如调试一个中断信号,我想看看中断来之前,CPU在做什么操作。预触发就能帮我看到「前因」。

后触发:这个好理解,就是触发之后的数据。比如你设置「收到错误帧」为触发条件,后触发就能看到设备是怎么处理这个错误的。

我的经验:调试协议时序时,预触发设30%,后触发设70%。这样既能看清触发原因,又能看到后续响应。如果是抓异常,我会把预触发调到50%——因为异常往往发生在触发条件之前。

嗯,这里要注意:预触发不是无限长的。它受限于分析仪的存储深度。比如你的分析仪有1M采样点,预触发设25%,那就是250K个采样点留给触发前的数据。别贪多,够用就行。

1.3 触发模式:立即、自动与正常

触发模式决定了分析仪「等不到触发条件时怎么办」。三种模式各有各的脾气。

1.3.1 立即模式(Immediate)

这个最简单。你一点「开始」,它立马就录。不管有没有触发条件,录完就停。

什么时候用?我一般只在两种情况下用:一是快速看看信号有没有,二是信号太简单不需要触发。比如检查电源上电时序,直接录一段看看谁先谁后就行。

注意:立即模式没有「等待触发」的过程。如果你要抓一个偶尔出现的异常,千万别用这个模式——录到的全是正常数据,浪费时间。

1.3.2 自动模式(Auto)

这个模式有点「智能」。它会先等触发条件,如果等了一段时间还没等到,它就自动开始记录。

我个人觉得自动模式是最常用的。为什么?因为调试的时候,你经常不确定信号会不会出现。比如你设置了一个复杂的触发条件,但电路可能根本没产生那个信号。自动模式会给你一个「保底」——至少能看到当前信号是什么样子的。

我曾经调试一个UART通信,怎么都触发不了。换成自动模式一看,原来是波特率设错了,数据根本对不上。要是用正常模式,我可能还在傻等。

1.3.3 正常模式(Normal)

这个模式最严格。它只会在触发条件满足时才开始记录。等不到?那就一直等下去。

正常模式适合抓那些「确定会发生」的事件。比如你按下一个按键,GPIO会产生一个下降沿。用正常模式,按下按键的瞬间,分析仪就触发记录。

但要注意:如果触发条件永远不会发生,分析仪就会一直处于「等待触发」状态。我见过新手用正常模式抓一个不存在的信号,等了半小时还以为分析仪坏了。

模式 触发条件满足时 触发条件不满足时 推荐场景
立即 立即记录(忽略触发) 立即记录(忽略触发) 快速查看信号有无
自动 等待触发后记录 超时后自动记录 日常调试、不确定信号
正常 等待触发后记录 一直等待 抓确定事件、异常

1.4 实战中的选择建议

说了这么多,到底怎么选?我给大家一个简单的决策流程:

  1. 先确认信号是否存在:用立即模式或自动模式,看看能不能抓到数据。
  2. 确认触发条件是否正确:用自动模式,如果触发没发生,至少能看到实际信号长什么样。
  3. 抓特定事件:用正常模式,配合合适的预触发比例。

避坑指南:我曾经犯过一个低级错误——用正常模式抓一个每100ms才出现一次的信号,但分析仪的采样深度只够录50ms。结果每次触发后只录到一半数据。后来我把采样率调低,或者增加存储深度,才解决问题。

最后说一句:触发系统不是摆设。花10分钟设置好触发,可能帮你省下10小时的调试时间。我见过太多工程师拿着分析仪一通乱录,然后对着海量数据发呆。别学他们。

下一章咱们聊聊高级触发——条件触发、序列触发和协议触发。这些才是真正能让你「指哪打哪」的利器。