为什么我的波形在触发之前开始?

电器工程 spi 示波器 扳机
2022-01-22 09:44:30

我正在学习如何使用入门级数字存储示波器分析 SPI 总线时钟和数据。我正在使用BK Precision 2542B来测量来自使用 ARM 微控制器的Netduino的时钟和 MOSI 线的输出。

示波器图像

在这张图片中,我在通道 1(黄色)上有时钟,在通道 2(蓝色)上有 MOSI。触发设置为使用通道 1,使用 1.44V 的上升沿触发。时钟方波幅度约为 3.3V。

触发指示器水平位于显示屏的中央,但左侧有一个脉冲。我期待时钟的第一个脉冲从触发位置开始。我知道数字存储示波器可以让您查看触发前和触发后的事件,但我很困惑为什么第一个脉冲不是我想的那样。

我对触发的理解是不正确的,还是我只是使用了一个奇怪的范围?

编辑:脉冲序列为 300μs 宽,以 2ms 间隔重复,我的触发延迟值为 500μs。调整延迟并没有改变一个脉冲先于触发的事实。

编辑2:

在对信号进行了更多分析之后,包括使用模拟示波器,我想我已经确定有时脉冲持续时间约为 350μs 而不是 300μs。这可能是代码生成帧中的故障。

我发现 352μs 的延迟时间会产生预期的结果,但在触发之前时不时会有一个额外的脉冲。

延迟值

我记录了一些帧来显示不存在和存在的脉冲:

无前导脉冲 存在超前脉冲

如果我将水平时基设置得足够长以查看脉冲的持续时间,它们之间似乎总是至少有 1.7 毫秒:

每格 1ms 的数据脉冲

因此,虽然我认为超前脉冲是源“毛刺”的结果,但我仍然不确定 > 360μs 的触发延迟如何仍会产生意外的超前脉冲。

4个回答

您可能打开了某种触发过滤或延迟。否则,规则的上升沿触发应该已经捕获了第一个脉冲,而不是等到第二个脉冲。仔细查看触发菜单并关闭任何称为“过滤器”、“延迟”、“延迟”等的功能。

使用泰克 TDS3014 可以很好地触发相同的信号,触发延迟值范围从 350μs 到 1.5ms 或更长。

泰克 TDS3014 结果

因此,我认为答案是当某些东西看起来不正确时,用多个示波器交叉检查信号。

我永远无法让 BK 2542B 正确显示时钟,而不会丢失第一个脉冲,或者显示随机的“故障”或“垃圾”,使时钟脉冲数不胜数。

好吧,从技术上讲,您的示波器没有做错任何事情:您想在时钟上升沿同步,而您的所有屏幕截图都是。没有人告诉你这将是第一个脉搏如果示波器足够早地开始记录,触发器应该击中第一个脉冲,如果不是 - 运气不好,你会得到图像 #2。

我不太明白的是为什么你要在 CLK 上触发,而不是在 SS 信号上。SS 的下降沿保证您处于事务的开始,而 CLK 上升沿则不会。

编辑:考虑到您似乎总是错过一个脉冲,毕竟它看起来像是示波器中的一个错误。不过,看看触发 SS 是否有帮助。

伙计,SPI 总线在时钟线的下降时同步,而不是在上升时同步,这就是为什么一切看起来都错位了!

问候, 马克斯