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
so usb la braucht kein mensch, dass ist bestenfalles kinderspielzeug am usb port eines computers
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.