Forum: Mikrocontroller und Digitale Elektronik Wie arbeitet man eigentlich mit einem Logicanalyzer?


von Karli (Gast)


Lesenswert?

Hallo zusammen,

ich habe kein konkretes Problem. Es interessiert mich nur mal 
grundsätzlich, wie man mit einem Logicanalyzer arbeitet. Ich weiß 
bisher, dass man eine ganze Menge Leitungen anzapft und den Binärcode 
aufzeichnet. Wie geht es dann weiter? Wer kann aus den parallelen Spuren 
von Eins-Null-Folgen herauslesen, was für Daten hier übertragen werden? 
Oder geht es nur darum, irgendwelche elektrischen Fehler wie Rauschen, 
Peaks oder ähnliches zu entdecken?

Danke für Eure Erläuterungen und VG
Karli

von (prx) A. K. (prx)


Lesenswert?

Karli schrieb:

> aufzeichnet. Wie geht es dann weiter? Wer kann aus den parallelen Spuren
> von Eins-Null-Folgen herauslesen, was für Daten hier übertragen werden?

Du. Wenn es ein bekanntes Protokoll ist, wie I2C, und der Dekoder dabei 
ist oder zugekauft wurde, dann auch Software im LA.

Geht natürlich nicht immer. Bei einem dichten UART-Datentrom kann es 
schwer sein, die Bytes zu identifizieren, wenn man den Anfang nicht 
erwischt hat.

> Oder geht es nur darum, irgendwelche elektrischen Fehler wie Rauschen,
> Peaks oder ähnliches zu entdecken?

Dafür benotigst du ein Oszilloskop, keinen LA.

von Max P. (eizo)


Lesenswert?

Selbst bei günstigen Logic Analyzern kann man der Software sagen, welche 
Art von Signal man mitschneiden möchte, z.B. I2C mit SDA und SCL oder 
Usart mit RX und TX. Die Software kann dann den "aufgezeichneten 
Binärcode" analysieren und zeigt einem z.B. die übertragenen Daten als 
ASCII oder kann die Steuerbits/-befehle erkennen. (siehe z.B. Saleae 
Logic)
Prinzipiell kann man mit diesen Geräten gut überprüfen, ob das Timing 
stimmt oder die Befehlsreihenfolge. Dies eignet sich auch gut für z.B. 
LCDs, um Init Sequenzen zu analysieren. Dies ist zum Beispiel bei dem 
hier viel genuzten S65 Handydisplay geschehen, das durch dieses 
Re-Engineering jetzt an AVRs einfach genutzt werden kann, auch ohne das 
man das Datenblatt besitzt.

von Markus G. (thechief)


Lesenswert?

Hallo Karli,

hier etwas Hilfe zur Selbsthilfe :-)

Du kannst Dir auf der folgenden Seite die Software und die deutsche 
Hilfedatei zum zugehörigen LA herunterladen und damit im Demo-Modus 
arbeiten.

Die integrierte Hilfe erklärt auch die Funktions- und Arbeitsweise mit 
einem LA:

http://www.pctestinstruments.com/deutsch/downloads.htm


Viele Grüße

Markus

von Lehrmann M. (ubimbo)


Lesenswert?

Sagen wir mal so - damit kann man parallel viele Logiksignale sichtbar 
machen und somit in einen Zusammenhang bringen. Bei einfachen Sachen 
schafft das meist die Software, bei komplexeren Systemen braucht man 
viel Erfahrung, lernt aber mit der Zeit div. Logikverhalten zu erkennen 
und zu bewerten. Die Logic-Analyzer können nur mit logischen Signalen (1 
od. 0) umgehen. Oft werden sie allerdings auch von unerfahreneren 
Anwender verwendet (hier im Forum oft I2C-Bus) weil noch Erfahrung fehlt 
und die Implementierung noch nicht richtig ist. Beispiel 
Temperatursensor: Man kann schauen, ob erstens das was man von seinem 
Mikrocontroller aus sendet sinnvoll ist (der Output) und man kann 
schauen, ob vernünftige Signale vom Sensor zum Mikrocontroller kommen. 
Macht man z.B. wenn die aufgebaute Schaltung nicht funktioniert.

Der Logic-Analyzer (LA) kann allerdings wie erwähnt nur logische Signale 
darstellen. Wenn man Störungen, etc. erkennen & beheben möchte, so 
braucht man ein Oszi, das nimmt man zur Darstellung analoger Signale. 
Will man also beispielsweise die Flankensteilheit od. das Rauschen 
erkennen, so braucht man ein Oszi. Natürlich kann man auch ein Oszi als 
LA verwenden - Nachteil - Oszis sind teuer. Bei einem LA sind 16 Kanäle 
keine Seltenheit und ein Oszi mit 16 Kanälen zu bezahlen, da darf man 
schon den ein oder anderen Kleinwagengegenwert annehmen ...

von Karl (Gast)


Lesenswert?

Das sind schon klasse Teile. Ich würde meinen auch und gerade für den 
Einsteiger sehr sinnvoll und nicht übermäßig teuer, siehe hier:

http://www.watterott.com/de/Open-Logic-Sniffer

Die entsprechenden Protokolle I2C oder SPI werden direkt dekodiert. 
Nullen und Einsen sind aber auch sehr nett. Allein schon ein 
Schieberegister bei der Arbeit zu beobachten, ist eine feine Sache.

von Karli (Gast)


Lesenswert?

Danke für Eure Antworten. Jetzt, wo ich dank euch weiß, dass man die 
eventuell vielen Spuren von Nullen und Einsen nicht unbedingt mit dem 
bloßen Auge verstehen muss, sondern dass es Software gibt, die einige 
Protokolle automatisch dekodiert, kann ich nachvollziehen, dass das eine 
ziemlich brauchbare Sache ist.

Habe mir gerade den von Karl verlinkten hier angeschaut:
http://www.watterott.com/de/Open-Logic-Sniffer

Ich bin etwas überrascht weil:
1. günstiger Preis
2. Extrem hohe Frequenzen auf 32 Kanälen
3. Wo kann man die Daten sehen? Werden die über USB an den PC geschickt 
und dort in einer Art Oszilloskopbildschirm graphisch dargestellt und 
eventuell in einem Unterfenster dekodiert dargestellt?

Danke nochmals und VG
Karli

von Karl (Gast)


Lesenswert?

Die Software gibt es hier:

http://www.lxtreme.nl/ols/

Daten kommen über USB (UART) in die Software. Die Daten werden so lange 
gesammelt, bis der Puffer voll ist. Je nach Frequenz und Kanälen wird 
mehr oder weniger aufgezeichnet. Die Analyse bezgl. eines bestimmten 
Protokolls (I2C, SPI) erfolgt hinterher, anhand der aufgezeichneten 
Daten.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Karli schrieb:
> Ich bin etwas überrascht weil:
> 1. günstiger Preis
> 2. Extrem hohe Frequenzen auf 32 Kanälen

Naja "extrem hohe Frequenzen" wäre was anderes. ;-)  Auflösungen im
Bereich weniger Nanosekunden und darunter sind für "große" LAs
durchaus Norm.  Ich habe mir letztens günstig (allerdings nicht
billig :) ein ca. 15 Jahre altes Teil gekauft, das hat als kleinste
Abtastrate 2 ns (für einen schmalen Bereich um den Trigger sogar
500 ps), und eine Speichertiefe von 2 MSa.  Da siehst du auch schon
den größten Haken am preiswerten Angebot: 6 KSa bei 32 Kanälen ist
nicht wirklich viel.

Was mir beim Open Workbench Logic Sniffer auch nicht klar ist ist,
welche Triggermodi er bietet.  Darin unterscheiden sich einfache
Teile auch gern von ihren "großen Geschwistern".  Im Prinzip könnte
man aber wohl die Triggerterme "live" im FPGA generieren und damit
auch da einigermaßen komplexe Triggerungen aufbauen ("nach der 3.
Flanke im Kanal X noch 10 ms warten, danach den Puffer füllen").

Auf alle Fälle bietet der Open Workbench Logic Sniffer viel Wert fürs
Geld.

von Carsten S. (dg3ycs)


Lesenswert?

Jörg Wunsch schrieb:
> Naja "extrem hohe Frequenzen" wäre was anderes. ;-)  Auflösungen im
> Bereich weniger Nanosekunden und darunter sind für "große" LAs
> durchaus Norm.  Ich habe mir letztens günstig (allerdings nicht
> billig :) ein ca. 15 Jahre altes Teil gekauft, das hat als kleinste
> Abtastrate 2 ns (für einen schmalen Bereich um den Trigger sogar
> 500 ps), und eine Speichertiefe von 2 MSa.  Da siehst du auch schon
> den größten Haken am preiswerten Angebot: 6 KSa bei 32 Kanälen ist
> nicht wirklich viel.
^
Jörg, du hast dich verschaut!
Der jhat keine 6KSa bei 32Kanälen sondern 6KB Ram/Kanal bei Nutzung von 
32 Kanälen. Bei 32Kanälen hat der immer noch 100MSa, bei 16Kanälen sogar 
200MSa.

Aber es stimmt eindeutig, wirklich brauchbare LogicAnalyzer sind extrem 
Billig geworden. ICh selbst setze das Modifizierte Forumsprojekt ein 
wenn ich >16 Kanäle brauche. Unter 16 Kanäle nutze ich mit großer 
Zufriebdenheit den Zeroplus Logic Cube 16032 der ja in der schon lange 
laufenden Aktion mit dreißig frei wählbaren Protokolldecodern kommt 
(auswahl aus ca. 60 möglichen). Zusammen mit den sowieso 
Lizenesierungsfreien Decodern hat man so fast 40 Protokolle!

Dieser war ja lange zeit mit wenig aufwand  und 5 Euro material sogar 
auf die 32Kanalversion mit 128KB Specihertiefe 32128 aufrüstbar. Wenn 
man die 80 Euro für den 72MBit Speicher ausgeben wollte sogar auf die 
version mit 2Mbit/Kanal.

Meine Version konnte man zumindest noch durch eine einfach 
Softwaremanipulation in einen 16128 verwandeln der neben mehr speciher 
auch doppelte Abtastrate hat. Der 4MBIT Speicher ist auch bei den 
Kleinen auf dem Board (Wahrscheinlich geht das immer noch).
Das Ding kostete gerade mal 90 Euro.

Aber du hast recht. Neben der Kanalzahl und der Speichertiefe sind die 
Triggermöglichkeiten ein WEITES Feld wo es die unzähligsten 
Möglichkeiten gibt. Von Pegelwechsel auf einen Kanal bis zu komplexen 
Mustern, Parallelen Datenwörtern oder gar seriellen Datenwörtern. ODer 
auch Pulsbreite. Bisher reichte für meine Anwendugen zwar stehts der 
einfache Pegelwechsel aber was die Zukunft bringt... Und gerade diese 
Triggeroptionen sind bei teuren Geräten viel mächtiger als bei den 
billigen.

ICh habe hier auch noch zwei LogicAnalyzer der alten Schule stehen. 
(PHillips & HP) aber die sind nur noch dann im Einsatz wenn ich wirklich 
viele Kanäle brauche oder für Änderungsarbeiten an alten System (MCS48, 
Z80) was aber immer seltener wird.

Selbst wenn zumindest im bereich der 8Bit µC und deren Kommunikation mit 
der Umwelt die Geschwindigkeit noch locker ausreicht, so fehlt denen 
doch etwas entscheidendes - viele heute gängige Protokolle!

Für mich war die Verfügbarkeit von Protokollen im übrigen eines der 
größten Argumente bei der Auswahl. RS232, I2C & SPI hat wohl so gut wie 
jeder heute verkaufte. Aber schon bei dingen wie Manchester fängt es an 
Dünn zu werden. Und wenn dann CAN, Profibus, IEE488 oder 1Wire gefragt 
sind wird es interessant.

Gruß
Carsten

von franz b (Gast)


Lesenswert?

so usb la braucht kein mensch,
dass ist bestenfalles kinderspielzeug am usb port eines computers

von Carsten S. (dg3ycs)


Lesenswert?

franz b schrieb:
> so usb la braucht kein mensch,
> dass ist bestenfalles kinderspielzeug am usb port eines computers

Ja?

Und wie denkst du sollte man einen LogicAnalyzer heute an einen PC 
Anschließen? Oder gar nicht und den StandAlone nutzen. Wie damals mit 
winzigen Bildschirm und viel zu kleiner Auflösung...
SCSI und Firewire sind auch nicht mehr Up to date. Und IEE488 für einen 
Logicanalyzer... Viel spass! (Ichhabe noch alle diese Anschlüsse neben 
Serial und Parallport im PC... Brauche die noch und kann deshalb seit 
JAhren kaum Aufrüsten. Neue Motherboards in erschwinglichen Preislagen 
haben gar nicht mehr genug Steckplätze für die Karten! Und selbst wenn 
ich mehr bezahlen würde, kein Händler den ich im letzten JAhr angefragt 
habe, wo meine Deadline für ein modernes MB bei immer 450 Euro lag, 
konnte mir überhaupt noch ein Angebot für ein MB mit mindesten 5 PCI 
machen)

Nee, ein LogicAnalyzer mit USB Anschluss ist schon eine gute Sache.
Man nutzt den "guten" Monitor des PCs und er braucht keinen Platz. Wenn 
man unbedingt ein Stand alone Gerät haben will kann man den sich ja mit 
einem Laptop bzw. einem Motherboard, Monitor und SSD Platte in ein 
GEhäuse bauen. Was anders sind die Großen GEräte im Prinzip heute auch 
nicht mehr.
Wobei ich den ArbeitsPC trotzdem vorziehe denn da kann ich die Daten im 
Bedarfsfall gleich weiterverarbeiten. Wenn ich den Arbiets PC aber 
komplett zum Arbeiten brauche, (z.B. weil ich gerade aktiv an einer 
Firmware schreibe während ich die Reaktionen sehen will) dann stelle ich 
einfach einen meiner Laptops als Sichtgerät für den LA mit auf dem 
Tisch. Vorzugsweise meinen kleinen Asus EeePC1000h...

Gruß
Carsten

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Carsten Sch. schrieb:

> Jörg, du hast dich verschaut!
> Der jhat keine 6KSa bei 32Kanälen sondern 6KB Ram/Kanal bei Nutzung von
> 32 Kanälen. Bei 32Kanälen hat der immer noch 100MSa, bei 16Kanälen sogar
> 200MSa.

Hmm, ich habe nur bei Stephan Watterott geschaut:

216K Block RAM supports following memory configurations*

    * 8 channels with 24K sample depth
    * 16 channels with 12K sample depth
    * 32 channels with 6K sample depth

Ich habe nicht die Abtastrate gemeint, sondern die Speichertiefe!

> Unter 16 Kanäle nutze ich mit großer
> Zufriebdenheit den Zeroplus Logic Cube 16032 der ja in der schon lange
> laufenden Aktion mit dreißig frei wählbaren Protokolldecodern kommt
> (auswahl aus ca. 60 möglichen).

Haben wir in der Firma als "Zweitgerät".  Ich nehme aber, auch wenn
es deutlich unhandlicher ist, am Ende doch lieber einen der großen
Agilent-Teile.  Was mich am Zeroplus stört:

. nur sehr einfache Triggermöglichkeiten
. kein echtes time-differential recording

Letzteres ist mir beim Debuggen von Problemen mit embedded software
recht wichtig, denn es gestattet sehr lange Aufzeichungszeiten,
sofern man die Daten-Acquise auf Daten beschränkt, die sich eher
selten ändern (also kein Taktsignal oder dergleichen mit aufzeichnet).
Mit dem Agilent-LA muss man da zuweilen sich nicht einmal die Mühe
machen, eine Triggerbedingung zu formulieren, sondern man zeichnet
einfach Daten auf und hält die Aufzeichnung mit der Hand an, wenn
das zu untersuchende Problem aufgetaucht ist.

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

als "arme-Leute-LogicAnalyzer" für den Parallelport (braucht im 
Minimalfall nur ein paar Widerstände, besser gehts aber mit ein paar 
preiswerten Bauteilen) kannst du dir mal den TFLA ansehen, und damit ein 
bischen rumspielen.

http://tfla-01.berlios.de/

SPI und I2C Protokollanalyse ist schon mit dabei

von Miky (Gast)


Lesenswert?

Carsten Sch. schrieb:
> Meine Version konnte man zumindest noch durch eine einfach
> Softwaremanipulation in einen 16128 verwandeln der neben mehr speciher
> auch doppelte Abtastrate hat.

Hallo Carsten:
Kannst Du deinen LA nach dieser Änderung noch mit der Originalsoftware 
und deinen Protokollanalyzern verwenden?
Kannst Du mir zu dem von Dir durchgeführten Hack einen Link zukommen 
lassen?

Gruß
Miky

von Carsten S. (dg3ycs)


Lesenswert?

Miky schrieb:
> Carsten Sch. schrieb:
>> Meine Version konnte man zumindest noch durch eine einfach
>> Softwaremanipulation in einen 16128 verwandeln der neben mehr speciher
>> auch doppelte Abtastrate hat.
>
> Hallo Carsten:
> Kannst Du deinen LA nach dieser Änderung noch mit der Originalsoftware
> und deinen Protokollanalyzern verwenden?
> Kannst Du mir zu dem von Dir durchgeführten Hack einen Link zukommen
> lassen?
>
> Gruß
> Miky

Hi,

einen "guten" Link habe ich leider nicht Griffbereit. Es könnte sein das 
ich auf einer der alten Systemplatten da noch was unter den Favoriten 
habe.

(Wenn ich das System komplett neu mache baue ich immer die aktuelle C 
Platte aus und lagere die mindestens ein JAhr ein, nachem ich mittel USB 
Adapter dann das wichtigste rüberkopiert habe, dann wird eine andere 
Platte "C". ICh habe schon zweimal Daten nicht gesichert die ich für 
unwichtig geahlten habe und das wenige Tage später bereut. Neue Platten 
sind so billig das es sich für mich nicht mehr Lohnt das Risiko 
einzugehen, zumal nach 1-2 JAhren auch die Alten Platten meist 
wiederverwendet werden!)

Was ich auf die Schnelle gefunden habe ist dies:
http://hackaday.com/2010/03/30/zeroplus-logic-cube-modification/

(Beachte, die 16->32 Kanal Umbauaktion geht nur mit älteren Modellen, 
aktuelle Modelle mit neuem ASIC machen das nicht mit!)

In den Kommentaren um den 30/31 März 2010 steht etwas über das vorgehen!
Es gibt zwei Möglichkeiten, entweder man ändert die Treiberdatei oder 
aber die Werte im PID/VID Eeprom (24Cxx) Dafür gabe es sogar mal eine 
Software.

Auf diesen "HAck" bin ich mehr aus der Not heraus aufmerksam geworden. 
ICh habe bei der Registrierung versehentlich den 162000 mit meiner SNR 
ausgewählt, wodurch meine Dekoder dann nicht liefen. Konnte das dann 
nicht ändern. Ach nach Mitteilung an den HErsteller nicht, dann habe ich 
ahlt meine ID geändert (und das sogar dem Hersteller mitgeteilt ;-) ) 
und nun läuft es.

Daher vermute ich das Protokolle die bereits für den 16C032 
freigeschaltet sind nicht mit dem 16C128 /16C2000 laufen.
Alle meine Protokolle sind für den 16C2000 freigeschaltet, da ich die 
ersten Freischaltungen ja versehentlich so gemacht habe. (Der Vorgang 
ist mehrmals abgebrochen und irgendwann habe ich nicht mehr darauf 
geachtet).

Der "FreeCode" wurde problemlos akzeptiert. Wenn du es so machst wie 
ich, also Protokolle erst DANN freischaltest wenn du sie Brauchst und 
nicht auf Vorrat und daher noch einige auswählen kannst, würde ich evtl. 
einfach einen zweiten EEPROM einbauen, sind ja nur 8Pinne, und die mit 
einem kleinen Schalter umschaltbar machen.

Die Software ist ist für alle C Modelle immer dieselbe.

Hier im Forum wurde glaube ich schon einiges Dazu geschrieben!
Ich meine mich grau daran zu erinnern das die SW zum ändern der PID ohen 
öffnen des LA sogar von einem Forenmitglied geschrieben wurde, bin mir 
aber nicht sicher.

Gruß
Carsten

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.