Forum: PC Hard- und Software Digitales 17 Kanal Osizilloskop und Logic Analyser gratis


von Elmü M. (elmue)


Angehängte Dateien:

Lesenswert?

Hallo

Ich habe ein komplexes und komfortables Programm geschrieben, das es 
erlaubt, mit dem Parallel Port ein digitales Oszilloskop zu betreiben. 
Es enthält einen Logik Analysator für serielle Protokolle. Die Ausgabe 
erfolgt in farbigen Grafiken.

Das Programm und sein Sourcecode stehen gratis zur Verfügung.
Ich bitte die Betreiber dieser Seite mindestens einen Link auf der 
Oszilloskop Seite und zu der Logic Analyser Seite zuzufügen. Besser noch 
einen Abschnitt zum Thema.

Elmü

Download und Artikel:
http://www.codeproject.com/KB/system/17ChannelLogicAnalyzer.aspx

Features:
---------
* Digital Oscilloscope / Logic Analyzer with up to 17 input lines
* Uses the parallel (printer) port for input.
* While Logic Analyzers normally are very expensive, this one is for 
zero cost
* Written in speed optimized C++ to get the maximum possible sample 
rates
* The program is a stand alone single EXE file which neither needs any 
additional DLLs nor any framework. It runs out of the box
* Runs on all Windows platforms (95, 98, ME, NT, 2000, XP, 2003, Vista, 
2008, Windows 7, 2008 R2)
* Runs on 32 Bit Windows and 64 Bit Windows
* When first run, installs a driver to access hardware IO ports on all 
NT platforms
* Plays a sound via PC speaker to prove that the driver works correctly
* Shows the actual state of the input lines life in the LED's of the GUI
* Captures up to 500.000 samples / second (depending on your hardware 
and OS)
* Captures to memory (rather than disk) for maximum speed
* Capturing runs always with the maximum frequency that the hardware 
allows
* Memory saving capture technology stores only the changes of the input 
lines rather than storing all lines with each sample that is taken
* The capture process is independent of data analyzing so you can try 
various settings to display the captured data in the best way
* The analyzer generates coloured oscilloscope diagrams with a raster 
grid
* The output is written into an HTML file and one or multiple GIF files
* So the analyzer results can easily be shared with other people who 
must not install any program to view a proprietary binary format
* You can write an individual heading into each analyzer output to 
distinguish them later in a multitude of files
* When analyzing data, you can choose to delete old analyzer output or 
keep the old files
* The time axis shows absolute or relative time with microsecond 
precision (Performance Counter)
* Automatic detection of inactive input lines shows only the channels 
that have activity
* Automatic detection of idle time cuts out long phases of inactivity
* Automatic detection of input frequency chooses the adequate raster 
unit like on a real oscilloscope (10 µs, 20 µs, 25 µs, 50 µs, 100 µs, 
etc..)
* Automatic detection of context switches of the operating system
* Decoding of serial protocols like I2C Bus, PS/2 Bus, SMBus, ModBus, 
SPI Bus, Asynchronous (RS232, RS422, RS485), Infrared Remote Controls, 
Smartcards is partially already implemented or may be added by you.
* Decoded serial data (Start Bit, Parity, Acknowledge, Stop Bit) and the 
Byte that they represent is written into the diagram
* Very cleanly written source code with a proper error handling and 
plenty of comments

von Lukas K. (carrotindustries)


Lesenswert?

Kannst du mir bitte erklären, wie du mit den digitalen LPT-Eingängen 
analoge Signale aufzeichnen willst? Oder habe ich was verpasst? ;)

von avr (Gast)


Lesenswert?

@Luk4s K.

Ist halt ein AD-Wandler mit einer Auflösung von 1 Bit.

von Elmü M. (elmue)


Lesenswert?

Wer hat denn was von analog gesagt ?
Ist eine digitales Oszilloskop.

von Tom (Gast)


Lesenswert?

@ Elmü: Du solltest erstmal lernen was ein Oszilloskop ist:
http://de.wikipedia.org/wiki/Oszilloskop#Messungen
Und was ein Logikanalysator ist:
http://de.wikipedia.org/wiki/Logikanalysator

Na, Groschen gefallen?

von Andreas Huber (Gast)


Lesenswert?

Ein Oszilloskop ist ein Gerät, das elektrische Schwingungen grafisch 
darstellt. Es spielt dabei keinerlei Rolle ob diese analog oder digital 
sind.

von Stefan P. (Gast)


Lesenswert?

Hi Elmü,

geile Sache dein Logic Analyser. Genau sowas brauch ich gerade.

Hab mir schon mal die Hilfe durchgelesen, bin mir bei einigen Dingen 
noch nicht so ganz sicher. Wenn ich jetzt z. B. die serielle 
Schnittstelle abhorchen möchte dann leg ich den TX meiner seriellen an 
z. B. Status 0, GND an z. B. Pin 25, stelle unter Analyse die 
Schnittstelle ein und leg los?

Wo ich mir auch noch nicht so sicher bin ist die Sache mit der 
Überprüfung der Spannungen. Meine Serielle "liefert" +3V - 0V. Ich hab 
mal einige Pins an meim paralellen nachgemessen. Was mir schon komisch 
vorkommt wenn ich die GNDs gegeneinander messe ham die teilweise 4,45V?? 
Die anderen Pins ham teilweise 4,45V und teilweise 0V.

Was mach ich falsch.

Gruß
Stefan

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Stefan P. schrieb:
> Hab mir schon mal die Hilfe durchgelesen, bin mir bei einigen Dingen
> noch nicht so ganz sicher. Wenn ich jetzt z. B. die serielle
> Schnittstelle abhorchen möchte dann leg ich den TX meiner seriellen an
> z. B. Status 0, GND an z. B. Pin 25, stelle unter Analyse die
> Schnittstelle ein und leg los?

Nein

Das solltest Du auf keinen Fall tun. Die serielle Schnittstelle gibt 
Spannungspegel aus, mit denen Du die Druckerschnittstelle zerstören 
kannst.

von Elmü (Gast)


Lesenswert?

Hallo Stefan

> Hab mir schon mal die Hilfe durchgelese

"mal" lesen reicht nicht.
Lies den Artikel bitte GRÜNDLICH!

Die serielle Schnittstelle liefert positive und negative Signale.
Die kannst du nicht einfach mit der parallelen verbinden.
Siehe Wikipedia: RS232!

Ausserdem kannst du auf dem SELBEN PC nur dann Daten der seriellen 
messen (natürlich über einen Pegelwandler) wenn diese langsam sind (z.B. 
4800 Baud) Ansonsten fressen dir die Treiber der Seriellen zu viel CPU 
weg und du bekommst lange Aussetzer in denen du nix messen kannst. 
(siehe Abschnitt Context Switch)

Also:
1.) Entweder niedrige Baudrate
2.) Serielle Kommunikation mit zweitem PC messen

Wenn du ein Modem hast, kannst du das gewandelte RS232 Signal IM Modem 
selbst abgreifen, dort wo es aus dem Pegelkonverter herauskommt (z.B. 
MAX232 von Maxim)

Was das Messen der Parallelen angeht das ist ausführlich im Artikel 
beschrieben. Allein Spannungen messen reicht nicht. Du musst das mit den 
Widerständen so probieren wie beschrieben.

Was deine seltsamen Messungen angeht:
Kann es sein, dass in deinem Kabel nicht alle Adern verbunden sind ?

Elmü

von Paul B. (paul_baumann)


Lesenswert?

@Elmü
OT: Arbeitest Du bei der Firma Elmü in Thüringen?

MfG Paul

von Lukas K. (carrotindustries)


Lesenswert?

Andreas Huber schrieb:
> Ein Oszilloskop ist ein Gerät, das elektrische Schwingungen grafisch
> darstellt. Es spielt dabei keinerlei Rolle ob diese analog oder digital
> sind.

Für mich hat Ein Oszi mit 1 bit Auflösung nicht den Namen oszi verdient.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Andreas Huber schrieb:
> Ein Oszilloskop ist ein Gerät, das elektrische Schwingungen grafisch
> darstellt. Es spielt dabei keinerlei Rolle ob diese analog oder digital
> sind.

Eben. Ein Gerät aber, das nur unterscheiden kann zwischen Signal da und 
Signal nicht da, das stellt keine elektrische Schwingung dar. Und damit 
ist es kein Oszilloskop.

von MaWin (Gast)


Lesenswert?

Es ist ja auch ein Osizilloskop und kein Oszilloskop.

Und die neue Wortschöpfung darf alles :-)

Es ist nicht mal ein LA, aber trotzdem kann es ein
nützliches Programm sein.

Wenn man nicht wie Stefan P. als erstes versucht, mit
gnadenloser Überspannung den on-board Multi-I/O Chip
der Southbridge in den Latch-Up zu treiben und damit
seinen PC ruiniert.

von Klaus (Gast)


Lesenswert?

Hi Elmü

Danke für das coole Programm!
Das waren bestimmt ein paar Wochen Arbeit!

Lass dich nicht von den Wortklaubern hier im Forum demotivieren, die 
wahrscheinlich noch nie in ihrem Leben ein nützliches Programm 
geschrieben haben!

Ich werde jetzt mal mein paralleles Kabel ausgraben und ein paar Tests 
machen.

Klaus R.

von Stefan P. (Gast)


Lesenswert?

Hi Leute,

ich kenne die Unterschiede zwischen RS232 mit +-12V und 0-3V (durch 
Pegelwandler z. B. MAX232. Und ich hätte auch nie die +-12V dran 
gehängt. Das ich mir damit meinen guten Rechner killen kann ist mir auch 
klar. Zudem hätte ich das auch erst mal an einer alten Kiste probiert 
bevor ich damit an mein 2000€ Notebook hingehe.
Und ja, natürlich sollte ich mir den Artikel erst sehr gründlich 
durchlesen bevor ich ans werk gehe.

Trotz allem ein cooles Programm und ich kann mich Klaus nur anschließen.

Gruß
Stefan

von Hannes G. (Gast)


Lesenswert?

Klaus schrieb:
> Das waren bestimmt ein paar Wochen Arbeit!

Eher ein Paar Stunden, von denen die GUI wohl das meiste verschlungen 
hat.
Sowas läuft noch unter Programmierübung.

von Elmü (Gast)


Lesenswert?

Hallo

Ich melde mich aus diesem Forum ab.
Ich werde keine Mails mehr über neue Beiträge bekommen.

Das Niveau in diesem Forum ist gleich Null.
Die Leute können hier gerne weiter das Forum mit ihren belanglosen 
Meinungen und niveaulosen Kommentaren vollmüllen, aber ohne mich.

Wenn es hier keine Koordinatoren gibt, die für sachliche Diskussionen 
sorgen, dann ist mikrocontroller.net für mich gestorben.

Chao!
Elmü

von jl (Gast)


Lesenswert?

Hannes G. schrieb:
> Eher ein Paar Stunden, von denen die GUI wohl das meiste verschlungen
> hat.
> Sowas läuft noch unter Programmierübung.

klar doch, nennt sich autocoding, man klickt nur noch was zusammen. Hast 
du schon mal sowas programmiert? Da geht schon mal ne menge Zeit drauf 
sich die Funktionsweise (die ja logisch sein sollte) sich auszudenken 
und das ganze zun strukturieren. Da steckt arbeit dahinter und auch 
Fehlschläge weil man sich zu schnell selbst in eine Sackgasse 
manövriert.

Elmü Meister schrieb:
> * Captures up to 500.000 samples / second (depending on your hardware
> and OS)

was kommt denn real so raus unter NT oder XP mit dem Parallelport 
Treiber? Vor allem wie sieht die Sampleratengenauigkeit unter XP aus 
wenn dem Programm mal kurz der Task entzogen wird oder Interrupts 
bearbeitet werden? Als ich Ende der 90er (WIN95/NT40) mal was über den 
Parallelport einlesen musste hatte ich teilweise über 100ms Aussetzer.


JL

von avr (Gast)


Lesenswert?

Hannes G. schrieb:
> Sowas läuft noch unter Programmierübung.

Also als Übung würde ich das nicht bezeichnen.
Da steckt schon mehr dahinter. Allein das Auswerten
der Protokolle will überlegt und getestet sein.
Und eine nette Bedienoberfläche ist ja wohl auch kein
Softwarefehler ;)

Auch sollte man froh sein, wenn hier auch solche fertige
Projekte vorgestellt werden und nicht zum 1001-ten Mal
das LED-Problem gefragt wird.

Also ich vergeb mal 4 von 5 ****

Nach richtigem Einsatz evtl. ****+=*

avr

von Klaus R. (Gast)


Lesenswert?

Hallo

Elmü, (auch wenn du das hier nicht mehr liest)
du hast Recht, es ist wirklich traurig, wenn man sich mal die Beiträge 
in  diesem Thread anschaut:
17 Beiträge von denen ein einziger (Stefan P.) wirklich eine Frage zum 
Thema stellt. Alle anderen sind Hintergrundrauschen: Leute die nicht 
wissen was ein Oszi ist oder die noch nie in ihrem Leben programmiert 
haben und meinen, so ein Programm schreibe man mal eben. Ich habe schon 
mal in deinen Code geschaut und der sieht wirklich sauber aus und man 
sieht, dass da viel Zeit drin steckt. Klasse Programm! Thanks for 
sharing!

Hannes.G,
kannst du bitte mal ein paar Links posten von Programmen, die du 
geschrieben und veröffentlicht hast?
Ich würde gern mal sehen, was du unter Programmierung verstehst, wenn 
ein LogikAnalysator für dich eine Übung ist.
Ich wette, du wirst hier gar keinen Link posten, weil du überhaupt keine 
oder nur stümperhafte Programmierkenntnisse hast und noch nie irgend 
etwas veröffentlicht hast!

jl,
deine Frage zeigt eindeutig, dass du hier rumpostest ohne je den Artikel 
gelesen zu haben. Das Thema Conext Switches wird ausführlich in Elmü's 
Artikel besprochen!

Es ist wirklich peinlich hier!
Ich hoffe, dass einer der Moderatoren das hier liest und Massnahmen 
ergriffen werden, dass hier sachliche Diskussionen stattfinden statt 
Hintergrundrauschen!

Klaus R.

von 900ss (900ss)


Lesenswert?

Klaus R. schrieb:
> Es ist wirklich peinlich hier!

Stimme dir voll zu. Und peinlich ist es leider nicht nur in diesem 
Thread.

von jl (Gast)


Lesenswert?

Klaus R. schrieb:
> jl,
> deine Frage zeigt eindeutig, dass du hier rumpostest ohne je den Artikel
> gelesen zu haben. Das Thema Conext Switches wird ausführlich in Elmü's
> Artikel besprochen!

ja, ich hab den Artikel gelesen. Kannst du glauben, sonst hätt ich nicht 
diese Frage an Elmu gestellt.

>Org Web Page: If you measure slow signals like PS/2 (that has a 10 kHz >clock) or 
a 4800 Baud asynchronous communication, you will not have any >problems at all. 
But if you have to measure higher frequencies it is >obvious that during a 
measurement (capturing) the CPU should be as idle >as possible.

Ich hab halt schon meine Erfahrung sammeln müssen mit längeren 
Aussetzern. Deswegen die Frage mit was man da effektiv rechnen kann, da 
ist die kurze Context switch Betrachtung für mich nicht unbedingt 
ausreichend.

Und was nicht beantwortet wird ist die Frage ab wievielen us er 
Aussetzer erkennen kann. Genau das ist aber nötig um sich selbst ein 
Bild zu machen für welche Zwecke das Programm einsetzbar ist.

Also Klaus unterstelle mir nicht das ich hier herumtrolle oder sinnlose 
Fragen stelle nur damit ich was gepostet habe.

von Mike J. (emjey)


Lesenswert?

@ Elmü Meister

Ich kann den 17 Kanal Logik Analysator gut gebrauchen, im Labor habe ich 
zwar einen LeCroy zu stehen, aber wenn ich etwas zu Hause mache eben 
nicht.

Mein PC und mein Laptop besitzen jeweils einen Parallelport und ich kann 
diese Software jetzt auch gebrauchen um zu kontrollieren ob die 
gesendeten Daten auch ordentlich ankommen.



Zu den USB<->RS232 oder USB<->Parallel Konvertern:
- Ich habe durch diese Konverter (nachdem ich die Treiber installiert 
hatte) immer wieder Abstürze meines WinXP zu verbuchen. (mein Laptop hat 
keinen RS232)
 ... ich weiß dass man sie eh nicht nutzen kann da USB zu große 
Latenz-Zeiten hat, aber trotzdem ärgerlich für mich.

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.