../../../icons/Logo.pngPraktische Elektronik

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.
1.
pulseview-...-32bit-...-installer.exe von Downloads herunterladen.
2.
PulseView 32-Bit unter Windows wählen.
Die 64-Bit-Version kann Schwierigkeiten bereiten.
3.
Im Verzeichnis ....\Downloads pulseview-...-32bit-...-installer anklicken und installieren.
4.
msvcr100.dll z.B. von http://www.download-dll.com/dll-msvcr100.dll.html herunterladen.
Die Größe sollte 756kB (im Windows Explorer) sein.
5.
msvcr100.dll nach C:Windows\SysWOW64 kopieren.
6.
Zadig Treiber installieren. Der Treiber ist oft notwendig, um den USB-Bus anzubinden.
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

PulseView-Fenster

PulseView_1.png
Bild 1: PulseView im Demo-Modus

Wir sehen oben links den Knopf Run, daneben und darunter weiter Knöpfe. Dann kommt eine Scala mit Zeitangaben +100ms +200ms usw.

Es folgen vier analoge Kanäle A0 bis A3 und schließlich acht digitale D0 bis D7.

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
PulseView_2.png
Bild 2: PulseView im Demo-Modus 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.

  • 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.
SaleaClone.png

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

Attention attention

Richtig anschließen


Keine Spannungen über 5,5V

  • Finger weg, wenn negative Betriebsspannungen oder über 5,5V vorkommen.

Zuerst USB anschließen

1.
Das Gerät an den USB-Bus 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.
2.
Masse anschließen.
3.
Die Logikleitungen anschließen
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.
Attention pin

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
PulseView_3.png
Bild 3: Gerät in PulseView auswählen

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

PulseView_4.png
Bild 4: PulseView mit Saleae kompatiblem Logikanalysator

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.

Logik-anzeigen.png
Bild 5: Messschaltung mit Logikanalysator

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

Messleitungen anschließen

Logik-messen.png
Bild 6: Messen mit Logikanalysator

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.

Attention attention

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

3.1
Die Masse des Logikanalysators mit der der gemessenen Schaltung verbinden.
3.2
Die Messleitungen des Logikanalysators 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 R₁=R₂=1kΩ und C₁=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.

PulseView_5.png
Bild 7: Anzeige mit PulseView

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.

PulseView_6.png
Bild 8: Anzeige mit PulseView

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.

Attention work

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 Cursors.png öffnet einen Bereich im Fester von PulseView.

PulseView_7.png
Bild 9: Zeitmessungen mit 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 R₁ und R₂ insbesondere C₁.

  • 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 C₁ abweichen wird.
  • Die Periode und Frequenz des Taktes vom Timer 555 zu messen, ist eine gute Übung.
Attention sticker

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.