Beste Tools zum Debuggen einfacher digitaler Schaltkreise?


10

Ich bin ein professioneller Softwareentwickler, der an den Luxus integrierter Debugger gewöhnt ist. Seit einiger Zeit experimentiere ich mit der Arduino-Plattform. Ich finde jedoch, dass der Versuch, mit Komponenten wie einem digitalen Temperatursensor Dallas DS1820 zu kommunizieren, wie das Herumfummeln im Dunkeln ist.

Unter der Annahme eines losen Budgets von etwa 200 US-Dollar, welche Tools helfen mir, mir vorzustellen, was los ist? Ich habe mir das Link Instruments MSO-19 angesehen, weiß aber ehrlich gesagt nicht viel über den Unterschied zwischen einem Oszilloskop und einem Logikanalysator.

Woher weiß ich, dass das von mir gekaufte Gerät die Arten von (einfachen) Komponenten messen kann, die ich verwende?

Antworten:


9

Im Wesentlichen liefert ein Oszilloskop einen abgestuften Messwert der Spannung auf der Leitung, während ein Logikanalysator nur anzeigt, ob er 0 oder "hoch" ist (der Wert von "hoch" kann je nach Fall möglicherweise 5 V, 3,3 V oder 1,8 V betragen Ihre Schaltung). Sie werden oft feststellen, dass Logikanalysatoren aufgrund der geringeren erforderlichen Auflösung viel mehr Kanäle (Zeilen, die gleichzeitig gelesen werden können) als Oszilloskope haben.

Was ein bestimmtes Gerät betrifft , habe ich großartige Dinge über die Saleae-Logik gehört . Es tastet mit 24 MHz ab; Dies bedeutet, dass 24 Millionen Mal pro Sekunde geprüft wird, ob die Spannung an einer bestimmten Sonde hoch oder niedrig ist. Die Software scheint auch einige Kenntnisse über die gängigen eingebetteten Protokolle zu haben, um das Debuggen zu unterstützen. Ich würde mir vorstellen, dass 24 MHz für Arduino-Arbeiten ausreichen würden, da die maximale Taktrate des Atmegaxx8 20 MHz beträgt.


Nach einem halben Tag mehr Nachforschungen kann ich sagen, dass Saleae Logic mir bei 90% meiner Ideen helfen sollte. Die Software sieht für einen Hardware- "Außenseiter" wie mich poliert und intuitiv aus. Ich kann sehen, wie ein Oszilloskop immens hilfreich wäre, aber für die Art einfacher Projekte scheint ein USB-Logikanalysator ein guter Kompromiss zu sein.
Owen Thomas

In The soul of a new machineTracy Kidder heißt es (umschrieben), dass Höhlenmenschen ein Oszilloskop benutzten, um zu sehen, warum das Feuer nicht brennen würde. :-)
Stevenvh

9

Dies ist nur eine Ergänzung zu Penjuins Antwort, da sie nicht in einen Kommentar passt und seine Antwort im Allgemeinen richtig ist. Ich möchte nur eine Implikation in seiner Antwort klären.

Seien Sie sehr vorsichtig bei der Auswahl eines Messgeräts anhand seiner Bandbreite / Abtastrate. Ein Gerät mit einer Abtastrate von 25 MHz kann ein digitales Taktsignal von 25 MHz nicht genau abtasten, auch nicht in der Nähe.

Wenn Sie ein digitales Taktsignal mit 25 MHz aufnehmen und es in ein O- Oszilloskop mit einer Bandbreite von 25 MHz einspeisen, sehen Sie etwas in der Nähe einer Sinuswelle. Ein Oszilloskop mit einer Abtastrate von 25 MHz würde wahrscheinlich einen Gleichstrompegel anzeigen, da pro Nyquist das Signal mit der höchsten Frequenz, das ein solches Oszilloskop abtasten könnte, 12,5 MHz betragen würde.

Eine Rechteckwelle enthält eine Grundfrequenz, die ihre Taktrate ist, für dieses Beispiel 25 MHz. Es enthält auch große ungerade Harmonische, die seine quadratische Form ergeben. Um ein 25-MHz-Digitaluhrsignal mit Genauigkeit zu betrachten, müssten Sie nicht nur 25 MHz, sondern auch 75, 125, 175, 225 usw. betrachten. Wie weit Sie gehen müssen, ist nach oben mit der gewünschten Genauigkeit oder bis zur Anstiegsgeschwindigkeit des Transceivers.

Während dies für einen Logikanalysator etwas weniger wichtig ist, ist es dennoch sehr wichtig. Der Logikanalysator sucht nach einem "Hoch" und einem "Niedrig" über oder unter einem bestimmten Schwellenwert. Wenn das, was hereinkommt, eine Sinuswelle ist, sehen Sie künstlich kurze hohe und niedrige Zustände und künstlich lange Zwischenräume zwischen Bits. Dies kann etwas von der Architektur des Analysators abhängen.

Dies kann die Diagnose von Problemen im Zusammenhang mit verschiedenen Sendemodi unmöglich machen. Zum Beispiel hat SPI 4 verschiedene Modi, basierend auf Daten, die an den steigenden oder fallenden Taktflanken gültig sind, und auch auf der Datenpolarität (ist hoch eine 1 oder eine 0?). Andere Übertragungsprotokolle haben ebenfalls dieses Problem (z. B. I2S und verwandte Audioformate). Wenn Sie nicht genau erkennen können, wann die Kantenübergänge stattfinden, können Sie kaum feststellen, ob der Bus innerhalb der Spezifikation arbeitet.

Im Allgemeinen benötigen Sie Bandbreiten- / Abtastraten, die viel höher sind als die beabsichtigte Zieldatenrate. Wenn Sie einen 40-kHz-I2C-Bus abtasten möchten, ist ein Logikanalysator mit einer Abtastrate von 100 MHz mehr als ausreichend. Wenn Sie einen 25-MHz-SPI-Bus abtasten müssen, benötigen Sie einen Oszilloskop / Analysator mit einer viel höheren Bandbreite, etwa 500 MHz, wenn Sie echte Genauigkeit benötigen, sowie eine Abtastrate, die die Messung in diesem Frequenzbereich ermöglicht.

Daher kann das mit einer Abtastrate von 24 MHz empfohlene Gerät Penjuin wahrscheinlich nur eine genaue Messung von digitalen Signalen liefern, die kleiner als ~ 2 MHz sind, wobei die Anstiegsrate für diese Datenrate spürbar ist.


3
Sie sind absolut richtig, das ist mir völlig durch den Kopf gegangen. Um diesen Effekt weiter zu veranschaulichen, habe ich eine 1-kHz-Rechteckwelle in mein Oszilloskop eingespeist und einen Bildschirmauszug der resultierenden Fourier-Transformation erstellt (x-Achse ist im Grunde genommen die Frequenz): i.imgur.com/lJvtD.png . Die Harmonischen sind die sich wiederholenden Spitzen.
Jeremy

1
@penjuin perfekte Illustration. Um meine Antwort für den Owen zu klären, ist das empfohlene Gerät Penjuin wahrscheinlich sehr gut in der Lage, mit einem Ardunio umzugehen, da Sie wahrscheinlich nie mit einer Schnittstelle arbeiten müssen, die mit> 2 MHz mit dieser Geräteklasse läuft. Ich wollte nur sicherstellen, dass er es nicht als Faustregel genommen hat und dass es ihn beißt, wenn er später zu Geräten / Schnittstellen mit höherer Geschwindigkeit übergeht.
Mark

1
Ein Logikanalysator mit ordnungsgemäß konfigurierter variabler Schwelle bietet normalerweise eine ausreichende Auflösung für die Analyse der Logik bei nur wenigen Faktoren, die höher als die Signalfrequenz sind. Das Problem besteht darin, dass der Controller, der das Signal empfängt, für alles unter 1,2 V (zum Beispiel) auf logisch Null und für alles über 2,2 V (zum Beispiel) auf logisch 1 schaltet, während der Logikanalysator möglicherweise auf 1,7 V umschaltet, um die Timing weniger genau. In vielen Fällen reicht eine Abtastrate von etwa 2-3 mal schneller in einer digitalen Schaltung aus, um zu verstehen, was vor sich geht.
Wouter Simons

@wouter simons achtet darauf, Bandbreite und Abtastrate nicht zu verwechseln (ich habe auch meine Wortverwendung in der Antwort bereinigt). Eine Abtastrate von 2x der Frequenz Ihres Signals ist das absolute Minimum, um dieses Signal zu erkennen. In der Praxis sind Bereiche und insbesondere Analysegeräte in der Regel stark überabgetastet. Zum Beispiel hat mein Tek-Oszilloskop eine Bandbreite von 100 MHz, aber Samples bei 2,5 GHz.
Mark

Gute Antwort. Ich bin Ihrem Beitrag ganz gut gefolgt und kann wahrscheinlich immer noch messen, was ich mit einem der billigeren Geräte da draußen will. Ich werde nach Einschränkungen Ausschau halten, wenn ich kompliziertere Komponenten untersuche.
Owen Thomas

8

Wenn Sie hauptsächlich an digitalen Schaltkreisen arbeiten möchten, ist der Logikanalysator genau das Richtige für Sie. Oszilloskope zeichnen sich dadurch aus, dass sie relativ wenige (z. B. 2-4) analoge Signale detailliert darstellen, während Logikanalysatoren, da sie sich hauptsächlich mit High-vs-Low befassen, normalerweise sehr viel mehr Eingänge haben.

Sie können sicherlich ein O-Oszilloskop als Logikanalysator verwenden, aber der Vorteil bei letzterem ist, dass es einfacher ist, das Gesamtbild zu erhalten, indem Sie Dutzende von Signalen gleichzeitig beobachten können.



2

Was Logikanalysatoren angeht, habe ich einen grundlegenden Vergleich von (relativ) kostengünstigen geschrieben:

Vergleich von PC-basierten Logikanalysatoren

Eine Sache, die Sie bei der Abtastgeschwindigkeit beachten sollten: Als Faustregel gilt, dass Sie im Allgemeinen mindestens das Vierfache Ihrer Datenrate benötigen, um einen genauen Messwert zu erhalten. Bis zu 10x ist besser. Wenn Sie also ein 8-MHz-Signal überwachen möchten (das Sie beispielsweise problemlos aus einem kostengünstigen AVR in SPI generieren können), benötigen Sie einen 32-80-MHz-Abtastratenanalysator. Dies gilt nur für die Aufnahme im asynchronen Modus. Wenn Sie im 'synchronen' Modus aufnehmen (z. B. mit einem Taktsignal), muss Ihre Abtastrate nur mit der Rate des Taktsignals übereinstimmen. In diesem Fall würde beispielsweise eine synchrone 8-MHz-Abtastung ausreichen, um ein 8-MHz-SPI-Signal zu erfassen (da es ein dediziertes Taktsignal hat).


1

Ich besitze ein MSO-19 und mag es sehr. Ich wünschte, es hätte mehr als einen analogen Kanal, aber es funktioniert sowohl als Oszilloskop als auch als Logikanalysator. Für den Preis halte ich es für ein schönes Gerät (und läuft gut in VMWare unter OS X). Das o'scope hat mir geholfen zu sehen, was wirklich in einem Teil der Schaltung passiert, und zeigt Ihnen nicht nur den High / Low-Zustand einer digitalen Leitung, wie es ein Logikanalysator tut. Es ist ein weitaus genaueres (und schneller reagierendes) Voltmeter als Ihr Standardmultimeter. Es wäre wirklich schön, wenn es serielle Daten dekodieren könnte, anstatt nur I2C und SPI…


1

Diese Antwort ist für Sie mit ardunio wahrscheinlich nicht sehr nützlich, aber eine Antwort auf die allgemeine Frage.

Ich benutze die Logikanalysatorfunktionen meines pickit2 sehr oft. Natürlich ist es für die Programmierung von PICs gedacht, aber es hat auch einen 3-Kanal-Logikanalysator-Modus, den ich ständig zum Betrachten digitaler Signale verwende. Ich benutze es immer noch dafür, obwohl ich Cortex-M3 für meine aktuellen Projekte verwende. Natürlich ist es ein extrem primitives Werkzeug für den Standard der richtigen Ausrüstung, aber trotzdem finde ich es unglaublich nützlich

Ich habe es auch zum Debuggen von I2C-Schaltkreisen und TV-Ausgangssignalen verwendet, siehe zum Beispiel meinen Beitrag hier


1

Das ist ziemlich cool und wirklich billig: http://www.seeedstudio.com/depot/preorder-open-workbench-logic-sniffer-p-612.html?cPath=75

Es hat eine anständige Abtastrate und Sie können ein cooles offenes HW-Projekt unterstützen. Es sieht so aus, als ob es sich noch in einer Art Beta-Phase befindet. Es ist also möglicherweise nicht das Beste, wenn Sie nur etwas anschließen und es funktionieren lassen möchten.


Ich habe es erst vor einem Monat gekauft, da ich hauptsächlich mit einem Netbook gearbeitet habe. Ich hatte Probleme mit der Bildschirmgröße meines Computers, um auf die Schaltfläche "Erfassen" klicken zu können. Wenn Sie jedoch einen Laptop oder Desktop-Computer normaler Größe haben, haben Sie Probleme wird gut. Ich habe es nicht ausgiebig benutzt, aber ich mag das Wenige, das ich habe, und der Preis ist auch schön!
Onaclov2000

Ich benutze dieses LA ziemlich oft und da dies mein erstes LA ist, benutze ich wahrscheinlich weniger als 50% der Leistung / Funktionalität, die es bietet. Beim Vergleich verschiedener anderer kostengünstiger LAs stellte ich fest, dass es eines der besten LAs mit einem guten Preis-Leistungs-Verhältnis ist. Die Software ist nicht schlecht. Tatsächlich fand ich es ziemlich gut für meine Zwecke. Wenn Sie sehen möchten, wie ich es verwendet habe, klicken Sie einfach auf mein Profil und sehen Sie die Fragen, die ich gestellt habe.
icarus74
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.