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


10

我是一位专业软件开发人员,习惯于使用集成调试器。现在有一段时间,我一直在尝试使用Arduino平台。但是,我发现尝试与Dallas DS1820数字温度传感器之类的组件进行交互就像在黑暗中摸索。

假设有200美元左右的宽松预算,那么有哪些工具可以帮助我直观地了解发生了什么情况?我已经看过Link Instruments的MSO-19,但是老实说,我对示波器和逻辑分析仪之间的差异了解不多。

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

Answers:


9

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

至于特定的设备,我听说过有关Saleae Logic的很棒的东西。它以24MHz采样;这意味着它将检查特定探头上的电压每秒高或低2400万次。该软件似乎还具有一些常见的嵌入式协议知识,可以帮助调试。我可以想象,由于Atmegaxx8的最大时钟速度为20MHz,所以24MHz就足以满足arduino的工作要求。


经过半天的研究,我可以说Saleae Logic现在应该可以帮助我解决90%的想法。对于像我这样的硬件“局外人”,该软件看起来既优美又直观。我可以看到示波器将有多么大的帮助,但是对于简单项目的类型,USB逻辑分析仪似乎是一个不错的权衡。
Owen Thomas

The soul of a new machine特雷西·基德(Tracy Kidder)的讲解中,穴居人使用示波器来查看为什么大火不会燃烧。:-)
stevenvh 2010年

9

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

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

如果您以25MHz的频率获取数字时钟信号,并将其馈入带宽为25MHz 的O形示波器,您会看到接近正弦波的信号。采样率为 25mhz的示波器可能会显示DC电平,因为根据奈奎斯特,该示波器可以采样的最高频率信号将为12.5mhz。

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

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

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

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

因此,推荐使用24mhz采样率的设备penjuin只能以小于等于2mhz的斜率对数据速率进行精确测量的数字信号。


3
你是绝对正确的,这完全让我无视。为了进一步说明这种效果,我将1khz方波输入到示波器中,并对得到的傅立叶变换(x轴基本上是频率)进行了屏幕转储:i.imgur.com/lJvtD.png。谐波是重复的峰值。
杰里米

1
@penjuin完美的插图。只是为了澄清我对欧文的答案,推荐的设备penjuin很可能能够处理ardunio,因为您可能永远不需要使用该类设备来处理运行在> 2mhz的接口。我只是想确保他没有将其作为经验法则,并且如果他后来转向更高速度的设备/接口,它最终会咬住他。
标记

1
通常,正确配置可变阈值的逻辑分析仪通常会以比信号频率高的几个因素为分析逻辑提供足够的分辨率。问题在于,接收信号的控制器将针对低于1.2V(例如)的电压切换为逻辑零,而针对高于2.2V(例如)的电压切换为逻辑1,而逻辑分析仪可能会切换至1.7V,从而使计时不太精确。在许多情况下,数字电路中约2-3倍的采样率足以了解正在发生的情况。
Wouter Simons

@wouter simons注意不要混淆带宽和采样率(我实际上也清理了答案中的单词用法)。2倍于信号频率的采样率是检测该信号的最低要求。在实践中,示波器尤其是分析仪通常会大量采样。例如,我的tek示波器的带宽为100MHz,但采样率为2.5GHz。
标记

好答案。我很好地跟踪了您的帖子,并且可能仍然可以使用其中一种较便宜的设备来衡量我想要的东西。在探索更复杂的组件时,我会注意限制。
Owen Thomas

8

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

您当然可以使用O型示波器作为逻辑分析仪,但后者的优点是可以同时观看数十个信号,因此更容易获得“全局”。



2

就逻辑分析器而言,我写了(相对)便宜的基本分析器:

基于PC的逻辑分析仪的比较

关于采样速度要注意的一件事,根据经验,通常需要至少4倍的数据速率才能获得准确的读数,而最高10倍更好。因此,如果要监视8MHz信号(例如,可以从SPI中便宜的AVR轻松生成),则需要32-80MHz采样率分析仪。仅在以“异步”模式捕获时适用。如果您以“同步”模式(例如,使用时钟信号)捕获,则您的采样率仅需与时钟信号的速率匹配。因此,例如在这种情况下,8MHz同步采样足以捕获8MHz的SPI信号(因为它具有专用的时钟信号)。


1

我拥有MSO-19,非常喜欢。我希望它具有多个模拟通道,但它既可以充当示波器又可以充当逻辑分析仪。就价格而言,我认为这是一个不错的设备(并且在OS X上的VMWare中运行良好)。示波器帮助我了解了电路一部分的实际情况,并没有像逻辑分析仪那样仅向您显示数字线路的高/低状态。与标准万用表相比,它是一种精度更高(响应速度更快)的电压表。但是,它可以解码串行数据,而不只是I2C和SPI,那将是非常好的。


1

这个答案对使用ardunio的人来说可能没什么用,但它是对一般问题的答案。

我大量使用了pickit2的逻辑分析器功能。显然,它是用于对PIC进行编程的,但它也具有3通道逻辑分析仪模式,我一直在使用它来查看数字信号。即使我当前的项目中使用的是Cortex-M3,我仍然会为此使用它。显然,按照适当的齿轮标准,它是一种极其原始的工具,但是即使如此,我仍然发现它非常有用

我已经将它用于调试I2C电路和电视输出信号也例如参见我的文章在这里


1

这很酷,而且真的很便宜:http : //www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html? cPath= 75

它具有不错的采样率,您可以支持一个很棒的开放式硬件项目。看起来它仍处于测试阶段,因此,如果您只是想插入某些东西并使其工作,那可能不是最重要的事情。


我是一个月前才购买的,因为我主要是在上网本上工作,所以我的计算机的屏幕尺寸无法点击“捕获”按钮,但是如果您使用的是普通尺寸的笔记本电脑或台式机,会没事的。我没有广泛使用它,但是我喜欢的东西很少,而且价格也不错!
onaclov2000

我经常使用此LA,并且由于这是我的第一个LA,因此我可能使用的功率/功能不足其50%。比较其他各种低成本的LA,我发现它是最物有所值的LA之一。该软件还不错。实际上,我发现它对我的目的相当不错。如果您想了解我的使用方式,只需单击我的个人资料,然后查看我提出的问题。
icarus74
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.