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.
Inhalt
Betriebsarten
Unterstützt werden zwei Betriebsarten:
- Das Einlesen der Informationen über die GPIO der Onboard-Erweiterungsanschlüsse
- 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-Anschluss | Erweiterungsboard | |
Kanäle | 8 | 8 |
Abtastrate (max.) | 12MS/s | 125MS/s |
Maximale Eingangsfrequenz | 3MHz | 50MHz |
Unterstützte Busprotokolle | I2C, SPI, UART | I2C, SPI, UART |
Eingangsspannung | 3,3V | 2,5…5,5V |
Überlastungsschutz | – | integriert |
Pegelschwellen | – | 0,8V (low) 2,0V (high) |
Eingangsimpedanz | – | 100kΩ, 3pF |
Triggerarten | Pegel, Flanke, Muster | Pegel, Flanke, Muster |
Speichertiefe | 1MS (typisch) | 1MS (typisch) |
Abtastinterval | 84ns | 8ns |
Minimale Pulsdauer | 100ns | 10ns |
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.
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.
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.
Neben dem eigentlichen Graph gibt es auch hier wieder 5 wesentliche Bereiche/Elemente, in die die Oberfläche unterteilt ist:
- Auto: Setzt den Zoom zurück und holt das Triggerereignis in die Mitte des Graphen.
- Run/Stop: Startet die Aufnahme der Eingangssignale, bzw. unterbricht sie, wenn die Aufnahme aktiv ist.
- Kanäle/Trigger/Messwerkzeuge: Dieses Menü bietet Einstellmöglichkeiten für Eingänge, Trigger und Hilfslinien.
- 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. - Statusanzeige: Gibt Information über den aktuellen Zustand der Aufnahme (stop, warten, fertig)
Analysieren binärer Signale
Ü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
Abtastrate | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 125 | [MS/s] |
Zeitausschnitt | 1 | 0,5 | 0,25 | 0,125 | 0,0625 | 0,03125 | 0,015625 | 0,008 | s |
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.
Trigger
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:
Kriterium | Bedeutung |
X - ignore |
kein Ereignis |
0 - Low |
Signal muss 0 sein |
1 - High |
Signal muss 1 sein |
R - Rising |
Steigende Flanke |
F - Falling |
Fallende Flanke |
E - Either |
Flankenwechsel (steigende oder fallende Flanke) |
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.
Busdaten decodieren
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.
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 ASCII
, ASCII & HEX
, BIN
, DEC
und HEX
.
Ü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.
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.
- Proxmox: „Failed to connect to Server“ mit Safari auf MacOS - 28. Januar 2023
- Loxone: Benachrichtigung per Telegram - 15. Januar 2022
- Telegram: Nachrichten per Bot von der Heimautomation aufs Handy - 2. Januar 2022
2 Comments