GPIB / IEEE488
USB/GPIB-Adapter von Elektor
- Details
- Zugriffe: 7726
Für den OsciViewer wurde ein Treiber für den USB/GPIB-Adapter von Elektor V1.1 implementiert.
Es sollte der TR4131 damit betrieben werden.
Dabei sind ein paar Veränderungen vorgenommen worden, damit die Pegel für den TR4131 auch passen.
- Alle Reihenwiderstände in den Bussleitungen wurden durch 100 Ohm ersetzt.
R4, R10, R11, R14 bis R28 - Die Spannungsversorgung vom Prozessor wurde von +5V abgetrennt und an Pin17 vom PL2303 gelegt.
Dadurch entspricht der Pegel der Busleitungen denen vom TR4131.
Anmerkung:
- Der Schaltplan aus Elektor 04.2011 ist nicht ganz korrekt, was die +5V Versorgung angeht. Das Layout stimmt aber wohl.
Der PL2303 gibt an Pin17 (VDD3V3) selber 3.3V aus. - Der Befehl für die Timeoutzeit ist falsch beschrieben. 200msec entsprechen nur 20.000
GPIB / IEEE488 Interfacekabel
- Details
- Zugriffe: 4273
GPIB Interfacekabel können recht teuer werden, besonders wenn es länger als 2 Meter werden soll. Daher habe ich ein eigenes für meine Gegebenheiten mit 9 Metern gebaut.
Es ist ein einfaches mit Punkt zu Punkt Verbindung. Dazu habe ich ein hochwertiges Kabel mit 32 paarverseilten Adern und Gesamtschirm verwendet:
Anzahl | Bezeichnung | Conrad | Gesamtpreis |
10 m | Unitronic LIYCY 16x2xAWG26 | 602160 | 48,4 € |
2 | Steckereinsatz 24 pol | 740276 | 6,98 |
Pinbelegung des Steckers:
IEEE488 Pin | Bezeichnung | Verdrillter GND an Pin |
1 | Daten 1 | 24 |
2 | Daten 2 | 24 |
3 | Daten 3 | 24 |
4 | Daten 4 | 24 |
5 | EOI | 24 |
6 | DAV | 18 |
7 | NRFD | 19 |
8 | NDAC | 20 |
9 | IFC | 21 |
10 | SRQ | 22 |
11 | ATN | 23 |
12 | Shield | Gesamtschirm / Gehäuse |
13 | Daten 5 | 24 |
14 | Daten 6 | 24 |
15 | Daten 7 | 24 |
16 | Daten 8 | 24 |
17 | REN | 24 |
18 | GND 6 | |
19 | GND 7 | |
20 | GND 8 | |
21 | GND 9 | |
22 | GND 10 | |
23 | GND 11 | |
24 | Logic GND |
Ein Teil vom Gesamtschirm als Leitung für Pin 12 verwenden.
Damit der Stecker besser auf die Buchsen passt, habe ich die vier Ecken ca. 5mm eingeschnitten. Bessere Stecker wären natürlich gut, habe ich aber leider nicht gefunden.
Das Interfacekabel funktioniert einwandfrei.
Ich habe am einen Ende den PC und am anderen Ende vier Messgeräte mit Kabel von jeweils 1-2 Metern angeschlossen.
IEEE488 Plugin für Logic Analyzer Zeroplus LAP-C 16032
- Details
- Zugriffe: 10733
Der Logic Analyzer LAP-C(16032) von Zeroplus ist für mich die Wahl gewesen.
Die wichtigsten Punkte für mich:
- Channel : 16 CH
- Internal Clock (Timing Mode) 100Hz~100MHz
- Depth(Per Channel):32Kbits (Max 8Mbits for compression)
- Protocol Analysis (sehr viele Protokolle erhältlich)
- Preiswert: unter 100Euro
Bestellt habe ich ihn 2010 bei TIGAL (aus Östereich; liefert sehr schnell).
Es sind Standardmäßig 4 feste Protokolle dabei. Ich hatte zusätzlich Glück, da es gerade eine Sonderaktion gab und ich 30 Protokoll ohne Zusatzkosten aussuchen konnte.
Die Protokoll werden mit einem Registrierungsschlüssel an die Seriennummer des LAP-C gebunden.
Das besondere an der PC-Software ist, dass man eigene Protokolle dafür schreiben kann.
Es wird ein sehr gutes SDK mit einfachen Beispielen zur Verfügung gestellt. Es wird aber die Visual Studio C++ Vollversion benötigt. Diese ist bei Microsoft aber als 30Tage Testversion verfügbar.
IEEE488 Protokoll-Analyser
Angefangen habe ich dann auch gleich mit einem einfachen Protokoll für die IEEE488 Schnitstelle, da ich die Software für meinen USB-GPIB-Adapter erweitern wollte.
Es sind nur einfache Protokoll-Erkennungen eingebaut, die das Protokoll etwas übersichtlicher erscheinen lassen:
Die DLL für den herunter laden.
Zip entpacken und die DLL einfach in das Verzeichnis (c:\Program Files (x86)\ZEROPLUS\PlugInsA\...) kopieren.
Beim nächsten Start der Software wird die DLL automatisch erkannt.
Hinweis: Die verwendete PC-Software ist die Version "la16032c_s30900_all_for64bit" mit der "lac_s31000_all" hatte ich Probleme bei mit den anderen Protokollen, da die PC-Software die Seriennummer nicht richtig ausliest.
GPIB-USB-Adapter
- Details
- Zugriffe: 24270
Ich wollte meine paar Messgeräte, die mit GPIB ausgestattet sind, mit einem einfachen GPIB-Adapter steuern.
Leider sind aber die kommerziellen GPIB Karten bzw. Adapter sehr teuer.
Und da ich nur eine "einfache" Steuerung meiner Messgeräte brauche, habe ich einen GPIB-USB-Adapter auf Basis eines PIC18F2550 gebaut.
Die Idee es doch selber zu machen kam mir von dieser Seite.
Da ich den USB mit dieser Software nicht zum laufen bekommen habe, habe ich die Software selber umgesetzt. Der Microchip PIC18F2550 Mikrocontroller ist für "full speed USB" konfiguriert. Es wird mit 20MHz betrieben und benutzt die interne PLL für 48MHz core speed und 12MHz USB speed. Alle IO-Leitungen haben 100 Ohm Schutzwiderstände. Der PIC kann maximal 25 mA Treiben, was nicht ganz der IEEE 488 Norm entspricht (hier sollten es 48 mA sein). Für kurze Kabel reicht es aber allemal.
Bei der Entwicklung habe ich auf mein Tool "IEEE488 Plugin für Zeroplus Lap C16032" zurückgegriffen.
Eagle-Schaltung
Der fertige Adapter sieht so aus:
Der erste Test lief erfolgreich mit einem Frequenzzähler RACAL-Dana 1991. Benutzt wurde der USB-Stack libusb-win32-1.2.6.0.
Es gibt zwei verschiedene Versionen der Firmware für den PIC18F2550:
Version | Beschreibung | Compiler | Anmerkungen | Sourcen |
---|---|---|---|---|
V1.0.1 | USB-Treiber von CCS und auch mit diesem compiliert | CCS | Da ich nicht weiss, ob der USB-Treiber von CCS weitergegeben werden darf, ist dieser nicht bei den Sourcen enthalten. Funktioniert nur mit Daten, die kleiner als 60 Bytes sind. |
https://sourceforge.net/projects/usbgpib/files/ |
ab V2.0 | USB-Treiber von Microchip | Microchip C18 Toolsuite | Sourcen vollständig frei | https://sourceforge.net/p/usbgpib/code/4/tree/ |
Die Test-Software für den PC wurde mit CodeGear geschrieben. Sie ist nur zum testen des USB-GPIB-Adapters gedacht und als Anschauung der Ansteuerung vom PC aus.
Das Ansteuern von Java aus kann in dem Sourcen von USB-GPIB-Adapter-JavaDriver eingesehen werden. Ist ähnlich wie JPIB, den ich schon für den OsciViewer angepasst habe.
Hier ist das zugehörige Javadoc.
Die neuere Version (>= V2.0) ist erweitert worden, und kann jetzt sehr große Datenmengen (getestet bis 25007 Bytes) problemlos empfangen.
Das Senden scheint auch mit größeren Datenmengen zu funktionieren.
Bei den Treibern habe ich auf LibUsb aufgebaut (siehe auch OsciViewer). Es funktioniert sehr gut.
Die Geschwindigkeit liegt bei 25000 Bytes bei ca. 1-2 Sekunden. Die Software ist zur Zeit auf der sicheren Seite. Könnte aber bestimmt noch mehr an Geschwindigkeit raugeholt werden.
Mit dem Lecroy 9400A läuft er ohne Probleme.
Einschränkungen
- Auf Grund der einfachen Schaltung und geringen Treiberleistung, reicht es nur für kurze Kabel.
Getestet habe ich mit einer Sternverkabelung mit jeweils max. 1-2 m Kabeln und 4 Geräten. - Probleme gibt es mit dem HP8620 wenn mehrere Geräte zusätzlich dranhängen.
- Mit dem TR4131 gibt es immer wieder Kommunikationsprobleme. Scheinen nicht von der Hardware, sondern in dem Ablauf des Software-Protokolls zu liegen. Konnte ich noch nicht finden.
Links
Genannte Marken oder Produktnamen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Eigentümer.