调试简单数字电路的最佳工具?

电器工程 Arduino 示波器 逻辑分析仪
2022-01-30 16:07:43

我是一名专业的软件开发人员,习惯了集成调试器的奢华。一段时间以来,我一直在试验 Arduino 平台。但是,我发现尝试与 Dallas DS1820 数字温度传感器等组件进行交互就像在黑暗中摸索一样。

假设预算为 200 美元左右,有哪些工具可以帮助我想象正在发生的事情?我看过 Link Instruments MSO-19,但老实说,我不太了解示波器和逻辑分析仪之间的区别。

我怎么知道我购买的设备能够测量我正在使用的(简单)组件的类型?

4个回答

本质上,示波器会为您提供线路电压的分级读数,而逻辑分析仪只会告诉您它是 0 还是“高”(“高”的值可能是 5V、3.3V 或 1.8V,具体取决于你的电路)。您经常会看到逻辑分析仪具有比示波器多得多的通道(可以同时读取的行),因为所需的分辨率较低。

至于具体的设备,我听说过Saleae Logic的好消息。它以 24MHz 采样;这意味着它每秒检查特定探头上的电压是高还是低 2400 万次。该软件似乎也了解一些常见的嵌入式协议以帮助调试。我想 24MHz 足以让 arduino 工作,因为 Atmegaxx8 的最大时钟速度是 20MHz。

这只是对 penjuin 答案的补充,因为它不适合评论,而且他的答案通常是正确的。只是想澄清他的回答中的含义。

根据带宽/采样率选择测量设备时要非常小心。具有 25mhz 采样率的设备无法准确采样 25mhz 数字时钟信号,甚至无法接近。

如果您将 25mhz 的数字时钟信号输入到带宽为 25mhz 的 o-scope 中,您将看到接近正弦波的信号。具有 25mhz采样率的示波器可能会显示 DC 电平,因为根据 Nyquist,此类示波器可以采样的最高频率信号为 12.5mhz。

方波包含基频,即其时钟频率,在本例中为 25mhz。它还包含大的奇次谐波,使其呈方形,要准确查看 25mhz 数字时钟信号,您不仅需要查看 25mhz,还需要查看 75、125、175、225 等。您需要走多远达到您想要的精度或达到收发器的压摆率。

虽然这对于逻辑分析仪来说不太重要,但仍然非常重要。逻辑分析仪正在寻找高于或低于某个阈值的“高”和“低”。如果看到的是正弦波,您将看到人为地缩短高低状态以及人为地延长位之间的空间。这可能在某种程度上取决于分析器的架构。

这会使诊断与各种传输模式相关的问题变得不可能。例如,SPI 有 4 种不同的模式,基于数据在时钟上升沿或下降沿有效以及数据极性(高 1 还是 0?)。其他传输协议也有这个问题(例如 I2S 和相关的音频格式)。如果您无法准确识别边缘转换何时发生,则几乎不可能确定总线是否在规范范围内运行。

通常,您需要比预期目标数据速率高得多的带宽/采样率。如果要对 40khz 的 I2C 总线进行采样,那么采样率为 100mhz 的逻辑分析仪就绰绰有余了。如果您需要对 25mhz SPI 总线进行采样,则需要具有更高带宽的示波器/分析仪,如果您需要真正的精度,则需要接近 500mhz,以及允许在该频率范围内进行测量的采样率。

因此,推荐使用 24mhz 采样率的设备 penjuin 可能只能提供小于 ~2mhz 的数字信号的准确测量,并且转换速率与该数据速率相当。

如果您打算主要在数字电路上工作,那么逻辑分析仪就是您想要的。示波器擅长显示相对较少(例如,2-4 个)模拟信号的精细细节,而逻辑分析仪,因为它们主要关注高与低,通常具有更多的输入。

您当然可以将 O 型示波器用作逻辑分析仪,但后者的优势在于能够同时观察数十个信号,从而更容易获得“全局”。

这个类似的问题有一些很好的答案:初学者的逻辑分析仪?