Logic Analyzer

salea_clone_3Für Einsteiger können die ersten Schritte beim Basteln mit Mikrocontrollern häufig etwas frustrierend sein. Ja, das ist leider auch meine eigene Erfahrung. Der Fehler liegt dann meist im Verborgenen: Wackelkontakte, eine instabile Spannungsversorgung, Softwarefehler etc. Helfen kann hierbei nur viel Geduld und geeignete Messgeräte. Dass dies aber nicht immer direkt ein teures Oszilloskop sein muss, möchte ich in diesem Beitrag zeigen.

Ich konzentriere mich dabei auf einige fast baugleiche Geräte: Saleae Logic & USBee AX. Beide basieren auf dem gleichen Mikrocontroller, dem Cypress FX2, und werden per USB an den Rechner angeschlossen. Bei eBay, AliExpress und Co. sind sie für unter 10 € erhältlich.

Hardware

LA können im Gegensatz zu Oszilloskopen ausschließlich digitaler Signale erfassen. Jeder gemessene Spannungspegel wird einem vom den zwei möglichen Zuständen zugeordnet: Werte bis 0.8 V werden als „Low“ (0); Spannungen ab 2.0 V als „High“ (1) Pegel gewertet. Diese Schwellwerte erlauben das Analysieren der meisten gängigen Logikfamilien (5 V, 3.3 V, 2.5 V, 2 V).

Auf den ersten Blick mag diese Einschränkung nur Nachteile in sich bergen. Aber sie ermöglicht es dem LA seine Stärken auszuspielen: Die Signale werden bereits in Hardware auf die zwei Logik Pegel diskretisiert. Das ermöglicht das effiziente Analysieren und komprimierte Übertragen der Daten an einen Rechner. Daten können quasi an den Rechner „gestreamt“ werden.

Selbst die günstigen LA besitzen bereits mit 8 Kanälen mehr als jedes Oszilloskop. Das genügt für die meisten Schnittstellen mit denen man es Anfangs zu tun hat. Die einfachsten Modelle bestehen aus einem simplen USB-Dongle welches nur das Erfassen und die Übertragung der Signale übernimmt. Um den Rest kümmert sich dann der Rechner.

clamp_wires

Neben der Kanalanzahl sind die Samplingrate und -tiefe zwei weitere wichtige Eigenschaften jedes LA. Die Samplingrate gibt an mit welcher Frequenz das Signal abgetastet wird. Sie darf nicht mit der maximalen messbaren Signalfrequenz verwechselt werden. Im Fall des Saleae Dongles beträgt die Samplingrate 24 Mhz. Nach dem Nyquist-Kriterium muss ein Signal mit mindestens der doppelten Signalfrequenz abgetastet werden. Demnach sollte man mit diesem Dongle Signale bis 12 Mhz erfassen können. Im Falle der LA ist das Nyquist-Kriterium aber nicht direkt anwendbar, da es nur für sinus-förmige Signale gilt. Die vom LA gemessenen Signale sind jedoch i.d.R. rechteckig und bestehen damit aus einer Überlagerung von unendlich vielen Sinussignalen mit auch sehr hohen Frequenzanteilen. Daher ist es nötig das Signal mit mindestens dem 10-fachen der Signalfrequenz abzutasten.

salea_clone_2

 

Die Samplingtiefe gibt an wie viele Messwerte, auch „Samples“, auf dem Gerät zwischen gespeichert werden können. Meist konfiguriert man den LA so, dass er beim Eintreten eines bestimmten Ereignisses getriggert wird. Erst dann beginnt der LA mit der Aufzeichnung der Daten. Ereignisse können hierbei bestimmte Daten oder einfach eine steigende bzw. fallende Flanke sein.

Professionelle Geräte sind flexibler und erlauben variable Spannungs Schwellwerte oder das Erfassen von differentiellen Signalen, wie sie beispielsweise im USB Standard eingesetzt werden. Teils können dann auch externe Taktsignale für die Sampling Clock genutzt werden. In der Highend Klasse findet man Mixed-Signal-Geräte, die die Funktionen des LA mit denen eines Oszilloskopes paaren und auch komplett ohne zusätzlichen Rechner, quasi „Standalone“, einsetzbar sind.

Software

Im Falle der günstigen USB Dongles Saleae Logic und USBee AX gewinnt die Software eine besondere Bedeutung: ohne sie lassen sich die Geräte nicht zum Leben erwecken. Erst beim Starten des GUI-Frontends wird die Firmware auf die USB Dongles geladen. Die original Firmware des Herstellers Saleae läuft daher auch problemlos auf den Klones aus China. Der folgende Screenshot zeigt die acht Kanäle. Der letzte Kanal wurde mit einem „Analyzer“ versehen. Dieser dekodiert verschiede Protokolle wie UART, SPI, I²C und blendet die Daten über dem Kanal ein.

logic_screenshot

sigrok

Alternativ zur offiziellen Software empfehle ich noch sigrok. Es ist ein Open Source Suite für das Interface zu einer Vielzahl von Messgeräten. Unter anderem werden einige Oszilloskope, LA, Multimeter, Datalogger usw. unterstützt. Die grafische Oberfläche ist im Vergleich zur Saleae Software etwas altbackener und funktional unterlegen.

sigrok_screenshot

sigrok besitzt seine Stärken in einem anderen Bereich: mit libsigrok stellt das Projekt eine gut dokumentierte Bibliothek bereit, die das Einbinden des LA in eigene Software ermöglicht. Mit libsigrokdecode können die erfassten Signale auch direkt dekodiert werden. Zu diesem Zweck implementiert libsigrokdecode ca. 30 Protokolldekoder, die einfach durch eigene Protokolle ergänzt werden können.

Auch die original Software von Saleae bietet ein SDK, das ähnliche Funktionen bietet, jedoch auf die Saleae LA beschränkt ist.

Um diese sigrok’s Funktionen auch ohne eigene Anwendung nutzen zu können bietet das Projekt noch eine Konsolenanwendung sigrok-cli. Mit dieser können erfasste Daten in diversen Formaten direkt in eine Datei geschrieben werden.

2 Gedanken zu „Logic Analyzer“

  1. Super Sache ..

    Wäre es nicht sinnvoll das ganze noch um einen Signalgenerator für Puls und Sinus zu erweitern?

    1. Hi,

      klar das wäre theoretisch möglich. Aber ich schätze die meisten Leute würden es bevorzugen diese Funktionalitäten in einzellne Geräte zu trennen.
      Ich stelle es mir beispielsweise recht umständlich vor Logicanalyzer und Signalgenerator in einer Desktop-GUI zu vereinen.

      Von der technischen Seite aus müssten die verbauten Mikrocontroller ihre Eingänge auch als Ausgänge nutzen können. Dabei macht uns jedoch der verbaute Pufferbaustein, der eigentlich die Eingänge schützen soll, einen Strich durch die Rechnung. Dieser kann nur unidirektional genutzt werden.

      Aber ich wäre selbst auch an einem von Preis, Qualität und Formfaktor vergleichbaren Signalgenerator interessiert. Also wenn jemand da etwas gefunden hat, darf er sich gerne hier melden :-9

      Viele Grüße

      Steffen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.