Themabewertung:
  • 1 Bewertung(en) - 5 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Logic Analyzer aus China
#1
Hallo zusammen,

da ich seit einigen Monaten vermehrt mit Microcontrollern bastle und dabei oft mit Bussystemen wie I2C, SPI oder Datenleitungen mit I2S-Signalen oder PDM/PWM in Berührung komme, brauche ich ein Gerät um diese Signale auszulesen und sichtbar machen zu können. Die normale Rundfunkwerkstatt mit Analog Oszi oder 2 Kanal DSO hilft hier wenig weiter. Zwar kann man am Oszi sehen das ein Signal auf der Signalleitung anliegt, mehr aber auch nicht. Für die Fehlersuche zum Beispiel an einem VS1053 ist das zu wenig. Die Lösung ist ein Logic Analyzer (kurz LA). Ich besitze zwar einen LA aus den 80iger Jahren, aber dieser ist heute dank fehlendem Parallel Port an meinen Computern nicht mehr nutzbar. Im Internet fand ich sehr günstige Alternativen mit heute üblichen USB2 und USB3-Port. Im Preissegment von 10 Euro bis knapp 100 Euro sind verschiedene Modell aus chinesischer Fertigung beziehbar. Die günstigsten LA (zirka 10 Euro) kommen mit USB2-Schnittstelle und Sampleraten von 25 MHz auf 8 Kanälen daher. Die größeren und etwas teureren Geräte haben meist USB3-Schnittstelle und Sampleraten von 100 MHz auf 8 oder 16 Kanälen. Praktisch wären noch ein oder zwei zusätzliche Analogkanäle, aber dies ist in dieser Preiskategorie wohl nicht mehr machbar.

Der Lieferumfang eines China-LA sieht typischerweise so aus:

   



Die roten Prüfspitzen sind nicht von überzeugender Qualität, sie funktionieren für den Moment, werden aber sicher nicht lange halten. Die restlichen Prüfkabel und das USB-Kabel entsprechen dem üblichen Standard.

Der LA braucht natürlich noch eine Software. Hier wird auf das im Hobbybereich durchaus bekannte Pulseview verwiesen. Dieses Programm läuft auf praktisch allen Rechnern und Betriebssystemen die es gibt. Es ist OpenSource und kostenlos von der Projektseite https://sigrok.org/wiki/PulseView downloadbar.

Eine typische Anwendung des LA könnte das Auslesen der Komunikations am SPI-Bus sein. Hier am Beispiel des LIS3DSH, eines 3-Achsen-Beschleunigungssensors, auf einem STM32 Eval-Bord. Dieser Beschleunigungssensor kann zum Beispiel in digitalen Wasserwaagen oder zur Bestimmung der Fluglage eines Modellhubschraubers genutzt werden.   

Auf dem Eval-Bord sitzt der LIS3DSH an den Ports PE0/1 und 3 (Chip Select), PA5 (CLK), PA6 (DO), PA7 (DI). Hier ein Bild des mit dem LA verkabelten Buses auf dem Testboard.

   

Die Kommunikation (zum Beispiel Auslesen eines Registers) zwischen STM32F4 und LIS3DSH erfolgt nach Datenblatt so:


.jpg   LIS3DSH_SPI_Read.JPG (Größe: 66,89 KB / Downloads: 215)

Ein typisches 16-Bit-Frame auf dem SPI-Bus wird durch fallenden Pegel der CS (Chip-Select)-Leitung eingeleitet, dadurch wird gleichzeitig ein Taktsignal (SPC) für 16 Bits erzeugt. Auf der Datenleitung vom Master (STM32F4) zum Slave (LIS3DSH) wird in den ersten 8-Bits des Frames das Kommando (lesen/schreiben) und eine Registeradresse gesendet. Das Bit "1" markiert durch seinen Wert (MSB!) ob vom folgenden Register gelesen oder ob aufs Register geschrieben werden soll. Lesend ist hier 1 oder High-Pegel. In den folgenden 7 Bits wird die Adresse des entsprechenden Registers numerisch kodiert. Die letzten 8 Bits auf der Slave-Data-In Leitung sind im Lesebetrieb ohne Bedeutung, während auf der Slave-Data-Out Leitung der Wert des Registers geschrieben wird. Danach geht CS wieder auf High.

Als nächstes möchten wir die Chipidentifikation (WHO_AM_I) aus dem Register 0x0F (hex) auslesen, um feststellen zu können ob der LIS3DSH vorhanden und auf Empfang ist. Im Datenblatt sieht man dazu auch den binären Wert der Registeradresse, sowie die zu erwartende Antwort (0011 1111) oder 0x3F.


.jpg   LIS3DSH_Register.jpg (Größe: 94,25 KB / Downloads: 216)

Mit unserem LA und Pulseview schauen wir ob das Signal auch wirklich über den Bus gegangen ist. Direkt nach dem Abhorchen des SPI-Bus erhalten wir folgendes Bild.

   

Auf dem ersten Blick sieht es doch super aus. Pulseview beinhaltet zudem mehrere Dekoder. Schaltet man den Dekoder für den SPI-Bus auf, werden die oberen Potentiale der einzelnen Leitungen in "begriffliche" Werte (unten) übersetzt. Die gedankliche Interpretation sieht folgend aus.

   

Wir haben uns also perfekt ans Datenblatt gehalten und die Daten sowohl zum, also auch vom LIS3DSH logisch richtig übertragen. Hätten wir einen Fehler in der Softwareimplementierung oder in der Hardware gehabt, hier wäre er sichtbar geworden.

Das freie und oben genutzte Programm "Pulseview" hat neben dem SPI-Dekoder noch viele andere Dekoder zu bieten.

   

So ausgestattet ist die Fehlersuche in Microcontrollerschaltungen leicht. Wer natürlich den Datenverkehr eines schnellen DDR-Speichers lesbar machen muß, der benötigt viel höhere Sampleraten und mehr Kanäle. Aber wir bewegen uns ja im Hobbybereich.

Viele Bastlergrüße
Bernhard
Ansprechpartner für Umbau oder Modernisierung von Röhrenradios mittels SDR,DAB+,Internetradio,Firmwareentwicklung. 
Unser Open-Source Softwarebaukasten für Internetradios gibt es auf der Github-Seite! Projekt: BM45/iRadio (Google "github BM45/iRadio")
Zitieren
#2
Hallo Bernhard,

danke für die interessante Vorstellung. So ein Gerät werde ich in absehbarer Zeit auch benötigen.

Gruß Matthias
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  China Touchscreen DMM "8138" für unter 30 :-) Martin 1 509 19.12.2020, 16:37
Letzter Beitrag: GüntherB
  Multimeter aus China Daniel 13 3.253 18.03.2019, 18:52
Letzter Beitrag: Valvotek
  Strom - Spannungsmesser aus China Daniel 11 1.729 06.02.2019, 23:24
Letzter Beitrag: navi
  M-Tester aus China radio-volker 20 4.824 16.11.2018, 11:02
Letzter Beitrag: Morningstar

Gehe zu: