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


Wir zeigen digitale Impulse mit einem Logikanalysator und PulseView an


list.png

Logikanalysator mit Pulseview


Logikanalysator mit PulseView

Es gibt eine Reihe PC-basierter Logikanalysatoren. Sie bestehen aus einem relativ einfachen Adapter, der acht bis sechzehn digitale Eingänge auf einen PC überträgt. 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€ erhältlich ist.

PulseView unterstützt eine Reihe von Logikanalysatoren. Eine Übersicht bietet Sigrok.

  • Das englische Handbuch von PulseView ist unter Manual zu finden.

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 https://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 mitgeliefert.
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 einer 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.

  • PulseView kann aus dem Eingabefenster gestartet werden
  • oder über ein Startmenü.

Windows7

Startmenü->Alle Programme->sigrok->PulseView->PulseView

Windows10

Startmenü->S->sigrok->PulseView

Probleme unter Windows

Wenn PulseView innerhalb weniger Sekunden beendet wird, kann es sein, dass PulseView beim Start nach einem bestimmten Treiber sucht, dieser aber nicht installiert ist.

In diesem Fall kann es helfen, Pulseview.exe mit dem Parameter -D zu starten.

Anschließend kann der Treiber fx2afw manuell zugewiesen werden.

OpenSuse

Starten mit


Im Terminal
pulseview

Oder Anwendungsmenü->Lernprogramme->Verschiedenes->PulseView

Ubuntu


Im Terminal
pulseview

Es gibt auch ein Icon unter <Anwendungen zeigen>.

Raspberry Pi


Im Terminal
pulseview

Application Menu -> Entwicklung -> PulseView

PulseView-Fenster

PulseView_1_s.png
Bild 1: PulseView im Demo-Modus

Oben links sehen wir den Knopf Run, daneben und darunter weitere Knöpfe. Darunter liegt eine Skala mit Zeitangaben +100ms +200ms usw.

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

Demo starten

Wir haben noch kein Gerät angeschlossen, aber PulseView hat ein Demo device.

  • Run drücken.
  • Die zwölf Kanäle füllen sich mit Daten.
PulseView_2_s.png
Bild 2: PulseView im Demo-Modus mit Daten
  • Leider ist nichts zu erkennen.
  • Die Zeitskala hat sich geändert: +1s +1s ... oder + 500ms +1000ms ...
  • Wenn wir mit der Maus über die Kanäle fahren, erscheint eine Haarlinie, die eine Zeit markiert.
  • Wenn wir mit dem Mausrad scrollen, erscheinen Details der Daten.
  • Wir sehen, wie sich die analogen und digitalen Signale mit der Zeit ändern.
  • Mit dem horizontalen Schieber ganz unten können wir den Datenbereich auswählen.
  • Die Zeitskala zeigt die angezeigten Zeiten an: z.B. +50µs, wenn der Schieber ganz links steht.
  • Die Darstellung ist einfach und intuitiv zu bedienen.
  • Die Punkte geben übrigens den Wert des eines Messpunkts an. Sie sind durch eine Linie verbunden.

Weitere Details ersparen wir uns und schließen ein Gerät an.

Logikanalysator anschließen

In den meisten Fällen wird ein Saleae-kompatibles Gerät verwendet.

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.

Solche 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 maximale Frequenz von 24MHz.

Frühere Logikanalysatoren der Firma Saleae beruhten auf dem FX2LP. Es ist leicht, Logikanalysatoren zu 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 ist der Software von Saleae durchaus ebenbürtig.
SaleaClone.png

Im Internet findet man solche Geräte unter dem Stichwort "Logikanalysator USB". Manche werden für unter 20€ angeboten.

Attention >

Wenn das Typenschild des Logikanalysators nicht passt oder nicht (mehr) lesbar ist, kann es

hiermit

selbst ausgedruckt werden.

Attention attention

Richtig anschließen


Keine Spannungen über 5,5V

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

Zuerst USB anschließen

1.
Das Gerät an den USB-Bus anschließen.
  • Wenn der USB-Bus nicht zuerst angeschlossen wird, arbeitet der Analysator nicht korrekt und liefert zufällige Daten. Er spinnt.
  • Die Ursache ist die Verwendung eines falschen Treiber-ICs am Eingang: Es wird der 74HC245 statt des passenden SN74LVC245 verwendet.
2.
Masse anschließen.
3.
Die Stromversorgung der gemessenen Schaltung einschalten.
4.
Die Logikleitungen anschließen.

Einfacher Eingang

  • Die Ursache für das obige Problem 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 z.B. den 74HC245.

Hier wurde gepfuscht und statt des passenden SN74LVC245 der 74HC245 verwendet.

Wenn keine Stromversorgung über den USB-Anschluss erfolgt, wird die Spannung an den Eingängen über interne Dioden des 74HC245 auf die interne Stromversorgungs-Leitung von 3,3V gelegt. Da der USB nicht angeschlossen ist, steht die korrekte 3,3V-Versorgung nicht zur Verfügung. Das schadet dem Analysator nicht, da die Eingänge über 100Ω-Widerstände geschützt sind (Bei +5V fließen 3,3mA).

Weil der FX2LP nicht korrekt mit 3,3V versorgt wird, startet er nicht richtig. Wird dann der USB angeschlossen, schlägt die Kommunikation mit dem FX2LP fehl.

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 durch einen 100Ω Widerstand geschützt, der vor jedem Eingang des 74HC245 liegt.
  • 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 nach Masse.
  • Bei -1V sind es 0,35mA
  • Bei -2V 1,2mA
  • Über 20mA sind für den 74HC245 nicht zulässig.
Attention pin

Farbcode der Messleitungen

Die Messleitungen des Logikanalysators sollten mit dem Farbcode für Widerstände versehen sein.

schwarz braun rot orange gelb grün blau violett grau
D0 D1 D2 D3 D4 D5 D6 D7 D8

Diese Farben entsprechen mit denen in PulseView.

Saleae kompatiblen Logikanalysator anschließen

  • Wir schließen das Gerät über den USB-Bus an unseren Computer.
  • PulseView betrachtet diese Geräte jedoch 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 Logikanalysators dargestellt.

PulseView_4_s.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_s.png
Bild 6: Messen mit Logikanalysator

Die Messleitungen sind entsprechend der Farbkodierung für Widerstände angeschlossen. Damit können die Leitungen einfach zu identifiziert werden. Natürlich muss auch die Masse angeschlossen werden.

Attention attention

Die Eingänge des Logikanalysators sind nicht gegen fehlerhafte Spannungen geschützt.

Also Vorsicht.

1. Prüfen:

  • Treten im gemessenen System Betriebsspannungen über 5,5V auf?
  • Treten im gemessenen System negative Spannungen auf?
  • Wenn einer der obigen Fälle zutrifft:
  • Das Gerät nicht anschließen.
  • Der Logikanalysator und der PC könnten beschädigt werden.

2. USB anschließen

  • Bevor Spannung an die Eingänge des Logikanalysators angelegt wird, muss der USB-Bus angeschlossen werden.
  • Andernfalls arbeitet der Logikanalysator nicht oder fehlerhaft.

3. Messleitungen anschließen

3.1
Die Masse des Logikanalysators mit der Masse der zu messenden Schaltung verbinden.
3.2
Die Messleitungen des Logikanalysators anschließen.

4. Prüfen:

  • Ist der Masseanschluss GND tatsächlich mit der Masse (0V) der zu messenden Schaltung verbunden?
  • Sind die Messleitungen D0 bis D7 tatsächlich mit einem Logikausgang der gemessenen Schaltung 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 ca. 480Hz.

Dieser Takt wird von den beiden BCD-Zähler durch 10*10=100 geteilt. Am Ausgang Q4 des Zählers U1B liegen somit etwa 4,8Hz an. Eine Periode an Q4 von U1B ist etwa 1/4,8Hz ~ 0,21s.

Eine gute Auflösung ist 1µs. Dies entspricht einer Abtastfrequenz von 1MHz. Für die 0,2s müssen wir also 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 pro Mikrosekunde ein Wert aufgezeichnet.

Mit Run starten wir die Aufzeichnung.

PulseView_5_s.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, den Ausgängen von U1B sind gut erkennbar. Der Takt für U1B ist D3 (Q4 des ersten Zählers Q1A). Auch er ist gut erkennbar.

Die Signale des ersten Zählers Q1A liegen an D0 bis D3. Sie sind, besonders D0, viel zu fein.

Mit dem Scrollrad der Maus können wir die Auflösung leicht anpassen.

PulseView_6_s.png
Bild 8: Anzeige mit PulseView

Nach dem Scrollen haben wir beispielsweise eine Anzeige wie in Bild 8.

Die Haarlinie ist bei D0=1, D1=1, D2=1 und D3=0, was einem dem Zählerstand von 7 entspricht. Dann gehen D0 bis D2 auf 0 und D3 wird 1: der Zähler ist 8, danach sind D0=1, D1=0, D2=0 und D3=1: der Zähler ist 9.

Danach sind D0 bis D3 auf 0, der Zähler Q1A ist 0.

Nun sollte der zweite Zähler weiterzählen.

Aber nein, der zweite Zähler hat bereits kurz hinter 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 richtig!

Der Fehler liegt bei uns. Der zweite Zähler muss mit der Flanke weiterzählen, wenn D3=Q4 von U1B 0 wird.

Wir haben den falschen Takteingang von U1B gewählt. Das Datenblatt des 74HC4518 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 legen.
  • Enable (Pin 10) von U1B mit Q4 (Pin 6) von U1B verbinden.

Betrachten wir nun die Zeitangaben in PulsView.

In der vierten Zeile werden die Zeiten in PulseView angezeigt.

In Bild 8 befindet sich eine Haarlinie bei etwa +130ms. Die Haarlinie folgt der Maus. Im Prinzip können wir damit messen, wie lang z.B. D4 1 ist.

Es geht aber auch einfacher:

Ein Klick auf Cursors.png öffnet einen Bereich im Fenster von PulseView.

PulseView_7_s.png
Bild 9: Zeitmessungen mit PulseView

Die beiden Grenzen können mit der Maus verschoben werden.

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 Flanken von D7, als Q4 von U1B eingestellt. 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 oder 5,1Hz beträgt.

Die Abweichung liegt im Timer 555, d.h. in den Widerständen R1 und R2, insbesondere C1.

  • Die beiden BCD-Zähler in Bild 5 zählen zwar nicht korrekt, teilen aber die Eingangsfrequenz korrekt durch 100.
  • Bei eigenen Messungen werden wir andere Werte erhalten, da C1 abweichen wird.
  • Eine gute Übung ist die Messung der Periode und der Frequenz des Taktsignals des Timers 555.
Attention sticker

Diese erste Beschreibung eines Logikanalysators mit PulseView und Saleae-kompatiblem Adapter ist nicht mehr als eine Einführung.

Im Praktikum Logikanalysator triggern kommen wir darauf zurück:

  • Was Triggern bedeutet
  • Wie Triggerbedingungen in PulseView eingestellt werden.