Red Pitaya: Logic Analyzer – App & Hardware

Das Red Pitaya-Board kommt mit einer Vielzahl von Applikationen und vor kurzem wurde der Logic Analyzer als Update nachgereicht. Damit ist es nun möglich, die binären Zustände von digitalen Signalen und deren zeitlichen Verlauf darzustellen. Der Logic Analyzer kann sowohl mit rein binären Signalen umgehen, wie zum Beispiel den GPIO-Outputs eines Raspberry Pi oder Arduino-Board, als auch verschiedene Bussysteme (I2C, SPI und UART) analysieren und die damit übertragenen Daten decodieren.

Red Pitaya: Logic Analyzer

Betriebsarten

Unterstützt werden zwei Betriebsarten:

  1. Das Einlesen der Informationen über die GPIO der Onboard-Erweiterungsanschlüsse
  2. Ein gleichnamiges Zusatzmodul, das einfach auf das Board gesteckt und über die Erweiterungsanschlüsse mit diesem verbunden wird.

Die beiden Varianten unterscheiden sich im Wesentlichen dadurch, dass die Abtastrate des Zusatzmoduls mit 125MS/s deutlich über den 12MS/s der GPIO liegt. Aber es gibt noch weitere Unterschiede: Das Erweiterungsmodul schützt das Board vor Überlastung durch zu hohe Spannung, ist einfacher anzuschließen und natürlich deutlich schicker.

GPIO-AnschlussErweiterungsboard
Kanäle88
Abtastrate (max.)12MS/s125MS/s
Maximale Eingangsfrequenz3MHz50MHz
Unterstützte BusprotokolleI2C, SPI, UARTI2C, SPI, UART
Eingangsspannung3,3V2,5…5,5V
Überlastungsschutzintegriert
Pegelschwellen0,8V (low)
2,0V (high)
Eingangsimpedanz100kΩ, 3pF
TriggerartenPegel, Flanke, MusterPegel, Flanke, Muster
Speichertiefe1MS (typisch)1MS (typisch)
Abtastinterval84ns8ns
Minimale Pulsdauer100ns10ns

Die Speichertiefe ist mit 1MS (typisch) angegeben. Das liegt daran, dass die Messdaten komprimiert sind. Der tatsächlich messbare Zeitabschnitt ist demnach abhängig davon, wie oft der Pegel wechselt.

Logic Analyzer-Erweiterungsmodul

Geliefert wird das Erweiterungsmodul in einer Verpackung im typischen Red Pitaya-Style. Enthalten sind:

  • Das Modul selbst, das sich in einem Aluminiumgehäuse befindet.
  • Ein 9-poliges Anschlusskabel. Das eine Ende besitzt eine durchgängige Pfostensteckerleiste, das andere einzelne Pfostenstecker, die gemäß Ihrer Funktion beschriftet sind.
  • 9 Federklemmen für den Anschluss an losen Kabelenden oder allem, was mit den Pfostensteckern nicht kompatibel ist.
Red Pitaya Logic AnalyzerRed Pitaya Logic Analyzer: AnschlusskabelRed Pitaya Logic Analyzer: FederklemmenRed Pitaya Logic Analyzer

Außerdem befindet sich der Lizenzcode für die Software in der Verpackung.

Anschluss

Wie das Erweiterungsmodul angeschlossen wird erklärt sich im Prinzip von selbst. Einfach oben auf das Board aufstecken und los gehts. Nutzt man jedoch die GPIO der Onboard-Erweiterungsanschlüsse, muss man genau zählen. Am Anschluss E1 werden hierfür die 9 Pins der inneren Reihe, gezählt ab dem zweiten von unten, genutzt.

Red Pitaya Logic Analyzer: Anschluss über GPIORed Pitaya Logic Analyzer: Anschluss am Raspberry Pi
Red Pitaya Logic Analyzer: Versuchsaufbau

Für meine ersten Versuche habe ich einen Raspberry Pi angeschlossen. Hier läuft ein einfaches Python-Script, das die GPIO ein- und ausschaltet.

Oberfläche

Die Oberfläche des Logic Analyzer passt sich gut ins Gesamtdesign ein und wird Nutzern, die bereits mit Oscilloscope Pro gearbeitet haben, auf Anhieb vertraut vorkommen, da sie das gleiche Bedienkonzept verfolgt.

Logic Analyzer: Oberfläche

Logic Analyzer: Oberfläche

Neben dem eigentlichen Graph gibt es auch hier wieder 5 wesentliche Bereiche/Elemente, in die die Oberfläche unterteilt ist:

  1. Auto: Setzt den Zoom zurück und holt das Triggerereignis in die Mitte des Graphen.
  2. Run/Stop: Startet die Aufnahme der Eingangssignale, bzw. unterbricht sie, wenn die Aufnahme aktiv ist.
  3. Kanäle/Trigger/Messwerkzeuge: Dieses Menü bietet Einstellmöglichkeiten für Eingänge, Trigger und Hilfslinien.
  4. Achsenbedienfeld: Über horizontale +/--Tasten wird die Skalierung der X-Achse verändert und der Zeitbereich gewählt, der im Graph angezeigt wird. Die vertikalen +/--Tasten verändern die Y-Achse und damit die höhe der Signalanzeige. Daneben werden die Einstellwerte für den Zeitbereich, Trigger und Abtastrate angezeigt.
  5. Statusanzeige: Gibt Information über den aktuellen Zustand der Aufnahme (stop, warten, fertig)

Analysieren binärer Signale

Logic Analyzer: Kanäle und Abtasteinstellungen

Logic Analyzer: Kanäle und Abtasteinstellungen

Über die Zahnrad-Schaltfläche hinter DIGITAL gelangt man in das Menü zur Kanalkonfiguration. Im Register LINES können die Kanäle durch einfaches Klicken auf das Häkchen aktiviert oder deaktiviert werden. Solange keine Bussysteme konfiguriert wurden, arbeiten die Kanäle als rein digitale Eingänge und zeigen entsprechend den Verlauf.

Im Register ACQ wird am Parameter Sample speed die Abtastrate eingestellt. Bei der Auswahl der Werte gibt es jedoch eine Sache zu beachten: Die Abtastrate hat maßgeblich Einfluss auf den zeitlichen Ausschnitt, der dargestellt werden kann. Gemäß Spezifikation besitzt der Logic Analyzer von Red Pitaya eine Speichertiefe von 1MS, kann also 1.000.000 Werte speichern und anzeigen. Über die einzustellende Abtastrate wird festgelegt, wieviele Werte pro Sekunde erfasst werden. Wählt man hier die höchste Abtastrate (125MS/s), würden pro Sekunde 125.000.000 Werte aufgezeichnet. Da 1.000.000 Werte gespeichert werden können, beträgt der zeitliche Ausschnitt 1/125, oder 0,008 Sekunden. Bei 1MS/s kann demzufolge eine ganze Sekunde aufgezeichnet werden.

t=\frac{1MS}{f_A}=\frac{1MS}{125MS/s}=0,008s

Abtastrate1248163264125[MS/s]
Zeitausschnitt10,50,250,1250,06250,031250,0156250,008s

Mit Pre-sample data buffer wird festgelegt, an welcher Stelle der Aufzeichnung sich das Triggerereignis befinden soll. Das macht insbesondere dann Sinn, wenn man feststellen möchte, was vor dem definierten Ereignis passiert ist. Zur Veranschaulichung ein Beispiel:
Die Abtastrate wird auf 4MS/s festgelegt, der gespeicherte Zeitausschnitt beträgt also ungefähr 0,25s = 250ms. Wird der Pre-sample data buffer auf 1ms gesetzt, dann steht im Ergebnis das Triggerereignis ganz am Anfang. Die Aufzeichnung zeigt dann das, was 1ms vor dem Ereignis, und 249ms nach dem Ereignis passiert ist. Wird Pre-sample data buffer auf 192ms eingestellt, steht das Triggerereignis ungefähr bei 2/3 der Aufzeichnung.

Logic Analyzer: Pre-sample data buffer = 192ms

Logic Analyzer: Pre-sample data buffer = 192ms

Trigger

Logic Analyzer: Trigger-Einstellungen
Die Trigger-Einstellungen beschreiben die Logik, wann die Aufzeichnung beginnt und werden per Klick auf das Zahnrad hinter TRIG eingestellt. Je Kanal kann eine Bedingung eingestellt werden. Steht alles auf X-ignore, so wird einfach aufgezeichnet, ohne dass ein Ereignis abgewartet wird. Wird die Triggerung verwendet, kann entweder ein einzelner Kanal das Ereignis liefern, oder die Ereignisse mehrerer Kanäle zu einem Gesamt-Trigger-Ereignis kombiniert werden. Das Ganze wird dann als Muster (engl. Pattern) bezeichnet.

Folgende Kriterien stehen separat für jeden Kanal zur Auswahl:

KriteriumBedeutung
X - ignorekein Ereignis
0 - LowSignal muss 0 sein
1 - HighSignal muss 1 sein
R - RisingSteigende Flanke
F - FallingFallende Flanke
E - EitherFlankenwechsel (steigende oder fallende Flanke)
Die Kriterien Low und High alleine scheinen vielleicht auf den ersten Blick keinen echten Sinn zu ergeben, schließlich nimmt ein Signal diesen Zustand nicht für einen Augenblick, sondern für einen unbestimmten Zeitraum ein. Ein genauer Zeitpunkt kann für dieses Kriterium also nicht vorher gesagt werden. Allerdings sind beide Kriterien unter Umständen für die Kombination mit Ereignissen von anderen Kanälen nötig. Denkbar wäre zum Beispiel, dass Kanal 0 high sein muss und Kanal 3 eine steigende Flanke aufweisen soll, damit die Aufzeichnung beginnt.

Per Klick auf RUN wird die Aufzeichnung gestartet. Die Statusanzeige informiert darüber, ob der Vorgang noch läuft (WAITING) oder bereits abgeschlossen ist (DONE). Im Anschluss werden die Ergebnisse im Graph angezeigt und müssen nur noch über die X-Achse (Zeit) skaliert werden.

Logic Analyzer: Messwerte

Logic Analyzer: Messwerte

Busdaten decodieren

Logic Analyzer: Bussysteme einstellen

Die Analyse von Bussignalen funktioniert ganz ähnlich und hierfür bietet die Logic Analyzer-App noch einige spezielle Einstellungen in zwei weiteren Registern: BUS und DATA, zu finden im Menü für die Kanaleinstellungen.

Im Register BUS können bis zu 4 Bussysteme definiert werden. Zum Aktivieren eines Systems wird der Haken vor seiner Beschriftung gesetzt und über das Zahnrad der Einstellungsdialog geöffnet. Auswählen lassen sich dann die Protokolle I2C, SPI und UART, sowie die Eingangskanäle, die dafür verwendet werden sollen. Deren Anzahl und alle weiteren Parameter unterscheiden sich je nach eingestelltem Protokoll. Um beim UART-Protokoll die Sende- und Empfangsrichtung (TX und RX) analysieren zu können, müssen zwei Bussysteme angelegt werden.

Logic Analyzer: I2C-ProtokollLogic Analyzer: SPI-ProtokollLogic Analyzer: UART-Protokoll

Die Anzeige der decodierten Daten geschieht dann auf zwei Wegen. Zum einen werden die Daten als separate Ebene im Graph direkt über das Signal gelegt. Die Einstellung, wie die Werte angezeigt werden sollen, erfolgt im Register BUS über den Parameter Display radix, der sich direkt unterhalb der Buskanäle befindet. Zur Auswahl stehen ASCII, ASCII & HEX, BIN, DEC und HEX.

Zum anderen gibt es das Register DATA. Hier lassen sich über die Schaltflächen im oberen Bereich die decodierten Daten der eingestellten Bussysteme ein- und ausblenden. Die Werte werden dann untereinander und in der Reihenfolge ihres Auftretens angezeigt. Die Anzeige der Daten kann unabhängig von der des Graphen eingestellt werden. Auch hier wieder ASCIIASCII & HEXBINDEC und HEX.

Logic Analyzer: Busdaten decodieren

Logic Analyzer: Busdaten decodieren

Über die Schaltfläche EXPORT können die decodierten Daten in eine CSV-Datei gepackt werden. Diese landet dann direkt im Download-Ordner und kann zur weiteren Analyse verwendet werden.

Hilfslinien

Wie schon bei Oscilloscope Pro bietet auch die Logic Analyzer-App Hilfslinien, um Werte nachmessen zu können. Zu erreichen sind die über die CURSOR-Schaltfläche auf der rechten Seite. Da es keine variablen Messwerte, sondern nur diskrete Signalpegel gibt, stehen die Hilfslinien ausschließlich für die X-Achse zur Verfügung – zwei Stück an der Zahl. Angezeigt werden jeweils die relative Zeit zum Nullpunkt der Aufzeichnung, sowie die Differenz zwischen beiden, sofern denn auch beide eingeschaltet sind.

Logic Analyzer: Hilfslinien

Logic Analyzer: Hilfslinien

Weitere Funktionen und Einstellungen

Unter der SETTINGS-Schaltfläche verbergen sich noch zwei weitere Menüpunkte. DEFAULT setzt alle Einstellungen auf den Standard zurück. Die Abtastrate wird wieder auf 125MS/s gesetzt, alle Kanäle eingeschaltet und die Einstellungen zur Busdatendecodierung gelöscht. Der zweite Unterpunkt, SYS INFO, blendet Informationen zum aktuellen Systemzustand ein, die sich eigentlich selbst erklären.

Logic Analyzer: Sysinfo

Logic Analyzer: Sysinfo

Sebastian

Sebastian

...ist staatlich geprüfter Techniker für Elektrotechnik, Schwerpunkt Prozessautomatisierung und Energietechnik. Die Themen Automatisierung und Programmierung haben es ihm besonders angetan.
Außerdem ist er für jede technische Spielerei zu haben 😉
Sebastian

2 Comments

  1. Avatar
    Antworten Georg

    Hallo
    jetzt ist ja seit diesem Artikel einige Zeit ins Land gegangen..
    Bist du immer noch zufrieden damit ?
    Bin auch an dieser Config interessiert, allerdings finde ich 400€ nun nicht gerade günstig wenns doch nichts taugt…

    • Sebastian
      Antworten Sebastian

      Hallo Georg,
      heute ein abschließendes Fazit zu ziehen fällt mir garnicht so leicht. Mit dem Red Pitaya-Board selbst, oder STEMlab, wie es jetzt heißt, bin ich sehr zufrieden und kann es eigentlich uneingeschränkt empfehlen. Wobei ich ehrlich gestehen muss, dass mir der Vergleich zu anderen Lowcost-Messgeräten fehlt. Die Funktionen erfüllen meine Ansprüche vollkommen, die Oberfläche ist handlich, es gibt des öfteren Software-Updates, der direkte Support ist auch bei fachlichen Fragen freundlich und hilfsbereit.
      Ich kann jetzt nicht unbedingt behaupten, dass der Logic Analyzer bei mir im Dauereinsatz ist. Aber auch hier wurden alle meine Erwartungen erfüllt. In der ersten Software-Version hatte ich einen Fehler gefunden und gemeldet. Das hat keine 2 Tage gedauert, bis der behoben war. Für mich auf alle Fälle ein Plus-Punkt.

      Ob es das Wert ist, muss nun jeder für sich entscheiden. Ich für meinen Teil kann nichts negatives sagen und bei all den Möglichkeiten, die das System bietet, finde ich den Preis absolut ok.

Hinterlasse eine Antwort

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