4、电平触发与码型触发:高/低电平触发、特定码型(Pattern)触发、在并行总线调试中的应用

好,咱们接着聊触发。前面讲了边沿触发,那是基础中的基础。但说实话,在实际项目中,光靠边沿触发往往不够用。你想想看,有时候信号线上电平一直高,或者一直低,你抓什么?又或者,你只想看某个特定的数据组合出现时的波形,边沿触发能帮你吗?不能。

所以这一节,我们来聊聊电平触发和码型触发。这两种触发方式,说白了就是让逻辑分析仪按照「信号的状态」或者「状态的组合」来干活。我个人觉得,掌握了它们,你才算真正开始玩转逻辑分析仪。

4.1 高/低电平触发:让分析仪等一个「状态」

电平触发,顾名思义,就是当信号的电平满足某个条件时触发。比如,你设置通道1为高电平触发,那只有当通道1变成高电平时,分析仪才开始采集。

什么时候用?

  • 检测复位信号: 比如你要看系统上电后,复位信号从低变高的过程。你可以设置低电平触发,等复位拉低时开始抓,看看各个模块的初始化顺序对不对。
  • 等待某个事件完成: 比如一个忙信号(BUSY)从高变低,表示操作完成。你可以设置高电平触发,等忙信号拉高时开始抓,看看是谁让它忙起来的。
  • 捕获异常状态: 比如某个信号本不该长时间为高,你可以设置高电平触发,并配合触发后延迟,抓取它异常拉高时的前后文。

关键点: 电平触发不关心信号的跳变,只关心信号当前的状态。它非常适合用来捕获「状态持续」的场景。

我记得有一次调试一个电源管理芯片,它的POWER_GOOD信号总是莫名其妙地拉低。用边沿触发根本抓不到,因为拉低的时间太短了。后来我改用低电平触发,把触发条件设为POWER_GOOD为低,再配合足够长的存储深度,终于抓到了那个毛刺——原来是隔壁的DC-DC开关噪声耦合过来的。

小技巧: 很多逻辑分析仪支持「电平触发+持续时间」的组合。比如,你可以设置「信号为高,且持续时间超过100us」才触发。这能有效过滤掉那些短暂的毛刺,只抓真正的异常状态。

4.2 特定码型(Pattern)触发:让分析仪认出一个「组合」

码型触发,也叫Pattern触发,是电平触发的升级版。它允许你同时设置多个通道的电平条件,只有当所有条件都满足时,才触发采集。

说白了,就是让分析仪认出一个特定的「数据组合」。

怎么设置?

假设你有一组8位的并行数据总线,你想抓取数据为0xA5时的波形。你可以这样设置:

  • 通道0(D0):高电平(1)
  • 通道1(D1):低电平(0)
  • 通道2(D2):高电平(1)
  • 通道3(D3):低电平(0)
  • 通道4(D4):高电平(1)
  • 通道5(D5):低电平(0)
  • 通道6(D6):高电平(1)
  • 通道7(D7):低电平(0)

当这8个通道的电平状态完全匹配时,触发发生。

核心思想: 码型触发 = 多个电平触发的「与」组合。它让你能精准定位到某个特定的数据或控制字出现的时刻。

你可能会问:「那我手动在波形里找0xA5不行吗?」行,但如果数据量很大,比如几百万个采样点,手动找无异于大海捞针。码型触发就是帮你自动定位到那个针的位置。

4.3 在并行总线调试中的应用

码型触发在并行总线调试中简直是神器。我做过一个项目,调试一个老旧的MCU与FPGA之间的并行接口,地址线和数据线加起来有20多根。每次出问题,我都得盯着波形看半天,眼睛都快瞎了。

后来我学乖了。我会先分析问题,猜一个可能出错的地址或数据,然后设置码型触发。比如,我怀疑地址0x1234写入数据0x5678时有问题,我就把地址线和数据线全部设好,等这个组合出现时触发。然后分析仪就会乖乖地抓取这个时刻前后的波形,我只需要看那一段就行了。

具体应用场景:

  • 捕获特定地址的读写操作: 设置地址线的码型,配合读写控制信号,精准定位。
  • 检测数据总线冲突: 设置数据线为高阻态或特定电平,看看是谁在驱动总线。
  • 验证初始化序列: 设置一组特定的控制信号组合,确认初始化流程是否正确。
  • 调试DMA传输: 设置DMA请求和应答信号的码型,分析传输时序。

注意: 码型触发虽然强大,但不要滥用。如果条件设置得太复杂,可能会因为信号抖动或时序偏差导致触发不稳定。我建议先从简单的2-3个通道开始,确认触发正常后,再逐步增加条件。

嗯,这里还要提一个坑。我曾经设置了一个8位的码型触发,结果死活触发不了。我检查了所有连线,确认信号没问题。最后发现,是我把通道的阈值电压设错了。3.3V的信号,我设成了1.8V的阈值,导致逻辑分析仪把高电平误判成了低电平。所以,设置码型触发前,一定要先确认每个通道的阈值电压是否正确

4.4 电平触发 vs 码型触发:怎么选?

触发类型 适用场景 优点 缺点
高/低电平触发 检测单个信号的状态变化、等待事件完成、捕获异常状态 设置简单,适合快速定位 无法区分具体的数据内容
码型触发 并行总线调试、特定数据捕获、协议分析 精准定位,能过滤大量无关数据 设置稍复杂,对信号质量要求高

我个人习惯是:先用边沿触发看个大概,再用电平触发缩小范围,最后用码型触发精准定位。这三板斧下来,大部分问题都能搞定。

好了,电平触发和码型触发就聊这么多。下一节我们聊聊更高级的触发方式——协议触发和序列触发。那才是真正的大杀器。