4、捕获中断信号:单次触发捕获、连续触发捕获、使用触发位置捕获抖动全过程
好,咱们接着聊。上一节我们把探头接好了,也确认了信号能正常进逻辑分析仪。那接下来就是真刀真枪地抓中断信号了。
说实话,捕获中断信号这件事,看着简单,其实门道不少。我见过不少工程师,上来就点个「开始捕获」,然后盯着屏幕发呆——啥也没抓到。为什么?因为触发条件没设对。
这一节,我就带你把这三种捕获模式玩明白:单次触发、连续触发,还有那个特别重要的触发位置设置。
4.1 单次触发捕获——抓「第一下」
单次触发,说白了就是「等一次,抓一次,然后停」。这在排查中断抖动时特别有用。
什么时候用?
- 你怀疑中断信号只在特定条件下出现一次
- 你想看系统上电后第一次中断的完整波形
- 中断频率很低,几秒甚至几分钟才来一次
怎么设置?
以 Saleae Logic 为例,操作很简单:
- 在触发设置里选择「Single」模式
- 设置触发条件为「上升沿」或「下降沿」(看你中断信号是哪种)
- 点击「Start」按钮
然后逻辑分析仪就进入「待命」状态。一旦检测到满足条件的边沿,它会立刻捕获一段数据,然后自动停止。
我的经验:单次触发模式下,采样深度要设得足够大。我遇到过一回,采样深度设小了,只抓到中断信号的前半段,后半段抖动全丢了。后来我习惯把采样深度设为最大,反正现在存储便宜。
4.2 连续触发捕获——看「反复」
连续触发就不一样了。它会一直抓,抓完一次自动重新准备抓下一次。适合看中断信号反复出现时的行为。
什么时候用?
- 中断信号周期性出现,比如定时器中断
- 你想观察多次中断之间的时序关系
- 抖动现象不是每次都有,需要大量样本
设置要点:
连续触发模式下,有个参数叫「触发间隔」或「Hold-off Time」。这个参数很关键。
你想想看,如果中断信号抖动得很厉害,在短时间内反复跳变,逻辑分析仪可能会被「触发疯掉」——刚抓完一次,紧接着又来一次,根本来不及处理。
注意:连续触发模式下,如果触发间隔设得太短,逻辑分析仪可能会漏掉一些事件。我建议设成中断信号正常周期的 1.5 倍左右。比如中断周期是 1ms,那 Hold-off 就设 1.5ms。
4.3 触发位置——Pre-trigger 和 Post-trigger
这个才是今天的重头戏。很多工程师忽略了这个设置,结果抓到的波形「前不着村后不着店」,根本看不出抖动从哪开始的。
先理解概念:
| 参数 | 含义 | 典型值 |
|---|---|---|
| Pre-trigger | 触发点之前捕获的数据量 | 10% ~ 50% |
| Post-trigger | 触发点之后捕获的数据量 | 50% ~ 90% |
说白了,Pre-trigger 让你看到「触发之前发生了什么」,Post-trigger 让你看到「触发之后发生了什么」。
为什么这对排查抖动很重要?
中断抖动,往往不是凭空出现的。它前面可能有一段不稳定的电平、一个毛刺、或者一个不完整的脉冲。如果你只抓触发点之后的数据,那抖动的前因你就永远看不到。
我的习惯:排查中断抖动时,我会把 Pre-trigger 设到 30% 左右。这样既能看清触发前的信号状态,又能保留足够的 Post-trigger 数据看后续行为。我曾经靠这个设置,抓到过一个「中断信号在触发前 200ns 出现了一个 50ns 的毛刺」——那个毛刺就是抖动的根源。
4.4 实战:捕获一次完整的中断抖动过程
好,理论说完了,咱们来实操一把。假设你有一个 GPIO 中断,信号正常时是稳定的高电平,中断时拉低 100μs 再拉高。但你发现有时候这个低电平会「抖」——中间出现几个窄脉冲。
步骤一:设置触发条件
触发类型:下降沿
触发通道:CH0(中断信号)
触发模式:Single(单次触发)
步骤二:设置触发位置
Pre-trigger:30%
Post-trigger:70%
采样深度:10M samples
采样率:50MHz
步骤三:开始捕获
点击 Start,然后手动触发一次中断(比如按一下按键)。逻辑分析仪会捕获到完整的波形。
步骤四:分析波形
你会看到:
- Pre-trigger 区域:中断信号原本是高电平,稳定
- 触发点:信号从高变低
- Post-trigger 区域:低电平持续了大约 100μs,但中间有 3 个窄脉冲(抖动)
你看,有了 Pre-trigger 的数据,你就能确认「抖动确实是在中断触发之后才出现的」,而不是之前就有的噪声。
避坑指南:我曾经犯过一个错——把 Pre-trigger 设成了 0%。结果抓到波形后,只看到中断信号已经拉低了,但不知道拉低之前是什么状态。后来才发现,中断信号在拉低之前已经有一个 20ns 的毛刺了。那个毛刺才是导致中断误触发的元凶。
4.5 三种模式的对比总结
| 模式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 单次触发 | 低频、偶发中断 | 数据完整,便于分析 | 需要手动重新触发 |
| 连续触发 | 周期性、高频中断 | 自动捕获多次,效率高 | 可能漏掉事件 |
| 触发位置 | 排查抖动、毛刺 | 能看到触发前后完整过程 | 需要合理设置比例 |
嗯,这一节的内容就到这。记住一句话:捕获中断信号,触发条件是骨架,触发位置是灵魂。 下一节,咱们就拿着抓到的波形,开始分析抖动到底长什么样。