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
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.
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.
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
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 ...
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.
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
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.
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.
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
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
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.
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
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
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