Logikanalysator mit PulseView
Es gibt eine Reihe PC-basierter Logikanalysatoren. Sie bestehen aus einem relativ einfachen Adapter, der acht bis sechzehn digitale Eingänge an einen PC übertragen. Die Anzeige und die Aufbereitung der Daten werden auf dem PC per Software realisiert.
Wir verwenden hier die frei verfügbare Software PulseView von Sigrok mit einem einfachen Adapter, der für etwa 20€ erworben werden kann.
PulseView unterstützt eine Reihe von Logikanalysatoren. Eine Übersicht bietet Sigrok.
- Das englische Handbuch von PulseView liegt unter Manual.
PulseView installieren
Unter Downloads von sigrok sind die passenden Pakete von PulseView erhältlich.
Windows
-
Die 64-Bit-Version kann zu Software-Problemen führen
Besser die 32-Bit-Version verwenden.
Die 64-Bit-Version kann Schwierigkeiten bereiten.
Die Größe sollte 756kB (im Windows Explorer) sein.
Zadig wird mit PulseView geliefert.
Zadig kann einfach im gleichen Startmenü wie PulseView gestartet werden.
OpenSuse
Installieren mit
Im Terminal
sudo zypper up sudo zypper install pulseview
Oder mit YaST installieren.
Ubuntu
Im Terminal
sudo apt-get update sudo apt-get install pulseview
Raspberry Pi
Auf dem Raspberry Pi muss außer pulseview auch sigrok installiert werden. sigrok stellt die Firmware für den fx2lafw bereit.
Im Terminal
sudo apt-get update sudo apt-get install pulseview sudo apt-get install sigrok
Fehlermeldung
Manchmal erscheint ein Fenster mit der wenig aussagekräftigen Fehlermeldung:
Failed to open device
generic/unspecified error
Aber im Terminal steht u.a.
sr: resource: Failed to open resource 'fx2lafw-saleae-logic.fw' ...
sr: fx2lafw: Firmware upload failed for device 1.6 (logical), name fx2lafw-saleae-logic.fw.
Die Ursache ist die nicht installierte Firmware des fx2lafw Treibers. Sie wird mit sigrok installiert.
PulseView starten
- Je nach Betriebssystem werden Icons zum Starten von PulseView angelegt,
- Wird vom Eingabefenster aus gestartet,
- oder über ein Startmenü
Windows7
Startmenü->Alle Programme->sigrok->PulseView->PulseView
Windows10
Startmenü->S->sigrok->PulseView
OpenSuse
Starten mit
Im Terminal
pulseview
Oder Anwendungsmenü->Lernprogramme->Verschiedenes->PulseView
Ubuntu
Im Terminal
pulseview
Es gibt unter <Anwendungen zeigen> auch ein Icon.
Raspberry Pi
Im Terminal
pulseview
Application Menu -> Entwicklung -> PulseView
Demo starten
Wir haben noch kein Gerät angeschlossen, aber PulseView hat ein Demo device.
- Run betätigen
- Die zwölf Kanäle füllen sich mit Daten

- leider ist nichts zu erkennen.
- Die Zeitscala hat sich verändert: +1s +1s ... oder + 500ms +1000ms ...
- Wenn wir mit der Maus über die Kanäle fahren erscheint eine Linie, die eine Zeit markiert.
- Scrollen wir mit dem Mausrad erscheinen Details der Daten.
- Wir sehen, wie sich die analogen und digitalen Signale mit der Zeit ändern.
- Mit dem horizontalen Schieber können wir den Bereich der Daten auswählen.
- Die Zeitscala zeigt die angezeigten Zeiten an: +50µs, wenn der Scher ganz links ist.
- Die Darstellung ist einfach und intuitiv zu bedienen.
- Die Punkte zeigen übrigens den Wert des Samples an. Sie werden über eine Linie verbunden.
Weitere Details ersparen wir uns. Wir schließen ein Gerät an.
Logikanalysator anschließen
Die meisten werden ein Saleae-kompatibles Gerät verwenden.
Saleae kompatible Logikanalysatoren
Einige Logikanalysatoren bezeichnen sich als Saleae kompatibel.
Diese Logikanalysatoren übertragen die Daten von den Logik-Eingängen über den USB-Bus zu einem PC. Auf dem PC läuft eine Software, die den eigentlichen Logikanalysator bildet.
Derartige Logikanalysatoren beruhen oft auf dem High-Speed USB Peripheral Controller (FX2LP) von Cypress. Sie verwenden den USB-2-Bus, haben meistens acht digitale Eingänge und eine maximalen Frequenz von 24MHz.
Frühere Logikanalysatoren der Firma Saleae beruhten auf dem FX2LP. Es lassen sich leicht Logikanalysatoren bauen, die sich am USB-Bus ähnlich verhalten wie die früheren Logikanalysatoren der Firma Saleae.
- Ein Beispiel ist der ARMFLY Mini-Logic.
- Im Internet gibt es eine Reihe ähnlicher Geräte.
- Der Betrieb dieser Geräte mit der Software von Saleae ist illegal.
- Die Software PulseView von Sigrok kann mit der von Saleae durchaus mithalten.

Im Internet lassen sich derartige Geräte unter dem Stichworten "Logikanalysator USB" finden. Manche werden unter 20€ angeboten.

Richtig anschließen
Keine Spannungen über 5,5V
- Finger weg, wenn negative Betriebsspannungen oder über 5,5V vorkommen.
Zuerst USB anschließen
- Wenn der USB-Bus nicht als erstes angeschlossen wird, spinnt der Analysator.
- Die Ursache liegt in der Verwendung falscher Treiber am Eingang: 74HC245 anstelle des geeigneten SN74LVC245.
oder die Stromversorgung der gemessenen Schaltung einschalten.
Die Ursache ist im einfachen Aufbau des Logikanalysators zu suchen
Die Eingänge des FX2LP werden zwar nicht unmittelbar an die Eingangsleitungen des Logikanalysators angeschlossen, sondern über einen Treiber wie den 74HC245.
Hier wurde gepfuscht und anstelle des geeigneten SN74LVC245 der 74HC245 eingesetzt.
Wenn keine Stromversorgung über den USB-Anschluss kommt, wird die Spannung an den Eingängen über interne Dioden des 74HC245 an die interne Stromversorgungs-Leitung von 3,3V gelegt. Diese Stromversorgung von 3,3V ist nicht vorhanden, weil USB nicht angeschlossen ist. Das schadet den Analysator nicht, weil die Eingänge über 100Ω-Widerstände geschützt sind. (Bei +5V fließen 3,3mA.)
Der FX2LP erhält über die interne 3,3V Stromversorgung Spannung und fängt an zu spinnen. Wird dann USB angeschlossen, misslingt die Kommunikation mit dem FX2LP.
FX2LP Geräte sind ungeschützt
- Die Eingänge sind nur geringfügig gegen Spannungen über 5V und negative Eingangsspannungen geschützt.
- Die Eingänge sind nur über einen 100Ω Widerstand, der vor jedem Eingang des 74HC245 liegt, geschützt.
- Bereits bei einer Eingangsspannung von +4V fließt über diesen Widerstand und die interne Schutzdiode des 74HC245 ein Strom zur 3,3V-Versorgung der Schaltung.
- Bei +5V fließen bereits 0,85mA.
- Ab einer negativen Eingangsspannung von -0,7V fließt über diesen Widerstand und die interne Schutzdiode des 74HC245 ein Strom zur Masse.
- Bei -1V sind es 0,35mA
- Bei -2V 1,2mA
- Über 20mA sind für den 74HC245 nicht erlaubt.
- Logikanalysator mit FX2LP beschreibt die problematische Schaltung.
- Die Schutzschaltung für einen Logikanalysator sollte verwendet werden.

Farbcode der Messleitungen
Die Messleitungen des Logikanalysators sollten mit dem Farbcode für Widerstände belegt sein.
schwarz | braun | rot | orange | gelb | grün | blau | violett | grau |
D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 |
Diese Farben stimmen mit denen in PulseView überein.
Wenn das Schild nicht passt oder nicht (mehr) lesbar ist: mit
Schild_8Ch_logic_Analyzer.pdf
selbst drucken.
Saleae kompatiblen Logikanalysator anschließen
- Wir schließen das Gerät über den USB-Bus an unseren Computer.
- PulseView betrachtet diese Geräte aber nicht als Saleae-Gerät, sondern als das was sie tatsächlich sind, nämlich als FX2 basierte Geräte.
- Wir wählen über das Menü Demo device den fx2lafw ... aus.
- Das Interface USB ist meistens schon ausgewählt.
- Wir lassen das Gerät suchen:
- Scan for devices ...
- Im Feld darunter sollte unser Gerät auftauchen
- Es nennt sich z.B. großspurig Saleae Logic with 8 channels

Es werden die acht Daten-Kanäle des Saleae kompatiblem Logikanalysator dargestellt.

Logik analysieren
Wir bauen eine einfache Schaltung mit einem 555-er Taktgenerator und zwei BCD-Zählern auf und messen die Ausgänge der BCD-Zähler.

Wir zeigen die Impulse an den Ausgängen der BCD-Zähler in Bild 5 mit dem Logikanalysator und PulseView an.
Messleitungen anschließen

Die Messleitungen sind nach dem Farbcode für Widerstände angeschlossen. Damit sind die Leitungen einfach zu identifizieren. Die Masse muss natürlich auch angeschlossen sein.

Die Eingänge des Logikanalysators sind nicht gegen fehlerhafte Spannungen geschützt.
1. Prüfen:
- Kommen im gemessenen System Betriebsspannungen über 5,5V vor?
- Kommen im gemessenen System negative Spannungen vor?
- Wenn einer der obigen Fälle zutrifft:
- Das Gerät nicht anschließen.
- Damit rechnen, dass der Logikanalysator und der PC beschädigt werden kann.
2. USB anschließen
- Bevor and die Eingänge des Logikanalysators Spannung gelegt wird, muss der USB-Bus angeschlossen sein.
- Sonst arbeitet der Logikanalysator nicht oder fehlerhaft.
3. Messleitungen anschließen
4. Prüfen:
- Ist der Masseanschluss GND tatsächlich mit Masse (0V) der gemessenen Schaltung verbunden?
- Sind die Messleitungen D0 bis D7 tatsächlich mit einem Logikausgang der gemessenen Schaltung verbunden verbunden?
Signale mit PulseView messen
Um die Signale von den Zählern messen zu können, müssen wir PulseView auf die ankommenden Signale einstellen.
Mit den Werten von R1=R2=1kΩ und C1=0,1µF erzeugt der 555er Timer in Bild 5 einen Takt von etwa 480Hz.
Dieser Takt wird durch die beiden BCD-Zähler durch 10*10=100 geteilt. Am Ausgang Q4 des Zählers U1B liegen damit etwa 4,8Hz an. Eine Periode an Q4 von U1B ist etwa 1/4,8Hz ~ 0,21s.
Eine gute Auflösung ist 1µs. Das entspricht einer Aufnahmefrequenz von 1MHz. Für die 0,2s müssen wir dann 1000000*0,2=200000 Aufnahmen (samples) machen. Wir wählen 1000000 Aufnahmen: 1M samples.
Wie in Bild 7 stellen wir 1M samples und 1MHz ein. Damit wird für 1s jede Mikrosekunde ein Wert aufgezeichnet.
Mit Run wird die Aufnahme gestartet.

Die Messung dauert 1s. Dann haben wir das Bild 7.
Der Zustand jedes Eingangs wird über die Zeit angezeigt. Bei 0 ist das Signal unten, bei 1 oben. Die Übergänge ↑ und ↓ sind erkennbar.
Die Signale an D4 bis D7, die Ausgänge von U1B sind gut zu erkennen. Der Takt für U1B ist D3 (Q4 des ersten Zählers Q1A). Auch er wird gut angezeigt.
Die Signale des ersten Zählers Q1A liegen an D0 bis D3. Sie, insbesondere D0, sind viel zu fein.
Mit dem Scrollrad der Maus können wir die Auflösung einfach anpassen.

Nach dem Scrollen haben wir beispielsweise eine Anzeige wie in Bild 8.
Die Haarlinie liegt auf D0=1, D1=1, D2=1 und D3=0. Das entspricht dem Zählerstand 7. Dann gehen D0 bis D2 und 0 und D3 wird 1: der Zähler ist 8. Anschließen ist D0=1, D1=0, D2=0 und D3=3: der Zähler ist 8.
Danach sind D0 bis D3 auf 0, der Zähler Q1A ist 0.
Jetzt muss der zweite Zähler um eins weiterzählen.
Aber nein der zweite Zähler hat schon kurz nach der Haarlinie weitergezählt, als der erste Zähler auf 8 ging:
D3=Q4 von U1B wird 1.
- Die beiden BCD-Zähler in Bild 5 zählen nicht korrekt!
Der Fehler liegt bei uns. Der zweite Zähler muss weiterzählen, wenn D3=Q4 von U1B 0 wird, der ↓ Flanke.
Wir haben den falschen Takteingang von U1B gewählt. Das Datenblatt des zeigt, dass der Zähler über den Eingang Enable mit der ↓ weiterzählt, Wenn CK=0 ist.

Die Korrektur ist einfach:
- CK (Pin 9) von U1B auf 0
- Enable (Pin 10) von U1B an Q4 (Pin 6) von U1B anschließen.
Wir wollen uns aber mit den Zeitangaben in PulsView befassen.
In der vierten Zeile werden in PulseView Zeiten angegeben.
In Bild 8 liegt eine Haarlinie bei etwa +130ms. Die Haarlinie folgt der Maus. Im Prinzip können wir damit messen, wie lange z.B. D4 1 ist.
Aber das geht einfacher:
Ein Klick auf
öffnet einen Bereich im Fester von PulseView.

Die beiden Grenzen lassen sich mit der Maus verschieben.
In Bild 9 wurde der Zoom mit dem Mausrad so eingestellt, dass eine ganze Sequenz (Periode) des Zählers U1B angezeigt wird. Die Grenzen der Zeitmessung wurden auf zwei steigende Flanke von D7, als Q4 von U1B justiert. Das ist die Dauer einer Periode von Q4 von U1B.
Wir hatten oben berechnet, dass diese Periode ~ 0,21s=210ms ist.
Unsere Messung zeigt, dass die Periode tatsächlich 195,84ms also 5,1Hz beträgt.
Die Abweichung liegt im Timer 555, d.h. den Widerständen R1 und R2 insbesondere C1.
- Die beiden BCD-Zähler in Bild 5 zählen zwar nicht korrekt, aber sie teilen die Eingangsfrequenz korrekt durch 100.
- Bei eigenen Messungen werden wir andere Werte erhalten, weil C1 abweichen wird.
- Die Periode und Frequenz des Taktes vom Timer 555 zu messen, ist eine gute Übung.

Diese erste Beschreibung eines Logikanalysators mit PulseView und Saleae-kompatiblem Adapter ist nicht mehr als eine Einführung.
Im Praktikum Logikanalysator triggern werden wir darauf eingehen:
- Was Triggern bedeutet
- Wie Triggerbedingungen in PulseView eingestellt werden.