zweisprachig English Translation Stichworte: USB, LPT, Parallel, Parallelport, Druckerport, Konverter, Adapter; Programmer, ATmega, ISP, FPGA, CPLD, JTAG; Portzugriff, IEEE 1284, IEEE1284

USB-Logo USB-zu-Parallel-Umsetzer „USB2LPT“ 25pol. SubD-Buchse

Eine Bauanleitung, Fertiggerät verfügbar

Im Gegensatz zu allen anderen USB-Parallelports ermöglicht dieses hier den Anschluss beliebiger Hardware (nicht nur Drucker), ohne Software anzupassen! Die Schaltung passt in ein gewöhnliches Stecker-Gehäuse.

Ein umgekehrtes Gerät (LPTzUSB), welches den Anschluss eines USB-Druckers an ein Parallelport ermöglicht, ist funktionstüchtig und vorhanden.

Für Anfragen nach Fertiggeräten bitte mailen.

Einsatzgebiete

Typische Geräte sind: Unzweckmäßig ist der Einsatz für: Bestimmte Gerätekategorien sind von der Emulation leider ausgeschlossen: Die Software muss selbstverständlich unter Windows lauffähig sein! Bei DOS-Programmen genügt Ausführbarkeit in einer DOS-Box. Auch 16-bit-Windows-Programme werden unterstützt. Als Prozessor wird ein Pentium oder höher vorausgesetzt. x64-Betriebssysteme sind vorläufig zu neu, ein geeigneter Treiber ist in Arbeit.

Einschränkungen, Performance

Das Abfangen der Portzugriffe erfolgt im Windows-Treiber im privilegierten Modus. Die dabei »verbrauchte« Zeit ist jedoch gering gegenüber der, dass bei jedem IN-Befehl (Port[]-Lesen, inportb()) ein USB-Rahmen von 125 µs Dauer (Revision 1: 1 ms) abgewartet werden muss. Das kann im Extremfall zu 100facher Zeitdehnung(!) führen.
Bleibt zu hoffen, dass es bei Ihrer Software nicht so ist. Die Wartezeit kommt anderen Prozessen zu Gute. Einziger Ausweg ist die Änderung der Software (das sollte ja vermieden werden).
OUT-Befehle (Port[]-Schreiben, outportb()) führen zu keiner nennenswerten Verlangsamung.

Es ist nicht sinnvoll, diesen Umsetzer nur zur Ansteuerung eines Druckers zu verwenden, dafür sind die sonstigen USB-zu-Parallel-Konverter geeigneter, die es überall zu kaufen gibt (bspw. bei Einkauf Reichelt: AK USB 102 für 9,45 €) (Alle Preisangaben ohne Gewähr!). Eine Drucker-kompatible USB-Schnittstelle ist jedoch in der Firmware als »Beigabe« implementiert, siehe Multifunktionsgerät. So gibt es bei Verwendung mit Druckern keine Geschwindigkeits-Einbußen.

Programme, die ihrerseits Kernel-Treiber zum Zugriff aufs Parallelport mitbringen, bereiten in der Regel keine Probleme wegen der »Härte« eines Debugregister-Traps.

Es kann Interferenzen mit Debuggern geben. Für Programm-Entwicker ist dieser Umsetzer ohnehin uninteressant.

Hinweis: Genau betrachtet ist der Aufwand für diesen Konverter oftmals überflüssig, denn für PCs ohne Parallelport gibt es PCI-Karten, und für Laptops ohne Parallelport gibt es PCMCIA-Karten dafür. Allerdings sind diese ungleich teurer und im Fall von PCI auch weniger gut handhabbar (PC muss ausgeschaltet und geöffnet werden).
Bis dato funktionieren keine ExpressCard-Adapter; hier ist USB2LPT zurzeit die einzige Chance.

Aktuelle Versionen

Es gibt auch ältere Ausgaben, die unter Umständen leichter nachbarbar sind, sowie ein Nachbauvorschlag mit Durchsteck-Bauteilen. Sie werden ebenfalls softwaretechnisch voll unterstützt.

Sechste Revision
Revision 6: Low-Speed
USB2LPT Ausgabe 1.6
  • 2008, Stückzahl: 750
  • Vier SMD-Bauteile, vier Durchsteck-Bauteile.
  • Mit Atmel ATmega8-16TQ. Basierend auf V-USB.
  • Ohne Quarz – Quarz ist optional. 3,3-V-Betrieb ist optional.
  • Bootloader für Firmware-Update ohne Parallelport
  • Gut geeignet für Relaiskarten, Lampensteuerungen, Text-Displays, langsame Schrittmotoren (bis 500 Schritte/s), langsame Gerätesteuerungen wie SDR1000, I²C-Geräte, Brauereisteuerungen
Siebente Revision
Revision 7: High-Speed
USB2LPT Ausgabe 1.7
  • 2008, Stückzahl: 750
  • Mit Cypress' CY7C68013A-56LFXC und einer Reihe Fußvolk.
  • Low-Power-, Low-Drop-Spannungsregler zur Erfüllung der USB-Spezifikation zur Standby-Stromaufnahme (≤ 500 µA, wirklich wichtig nur für schlafende Laptops)
  • Platine als Multinutzen mit 1.6 mit offenen Nachbestelldaten
  • Firmware-Modifikationsmöglichkeit direkt aus Anwendersoftware zur Lösung problemspezifischer Aufgaben mit GPIF und echten 480 MBit/s
  • Geeignet für Programmiergeräte, FPGA-Bitstream-Download, grafische LC-Displays, mittelschnelle Schrittmotoren (bis 4000 Schritte/s)

Hinweis: Ab sofort können Schüler/Studenten das Gerät zum Materialpreis (Rev7: 20€, Leiterplatte Rev6: 1€) von mir anfordern. Bitte wenden Sie sich dazu an die unten stehende Email-Adresse.

Software

Verwendung

Schauen Sie unbedingt beim Geräte-Manager nach! Unter „Anschlüsse“ befindet sich das Gerät. Bei Auswahl des Eigenschafts-Dialogs gibt es zwei zusätzliche Reiter, Emulation und Statistik. Unter Emulation wird das zu emulierende Port ausgewählt sowie einige weitere Eigenschaften (volle kontextsensitive Hilfe vorhanden). Bei Statistik gibt es einige Zugriffszähler, die „arbeiten“ sollten, wenn Ihre Software aufs Druckerport zugreift.

Es gibt auch eine API für Programmierer, die sehr einfach gehalten ist. Öffnen Sie mit CreateFile das Gerät "\\.\LPT1" (oder "LPT2" wenn es das zweite Gerät ist usw.), und schicken/holen die zu transferierenden Bytes (siehe USB2LPT.A51, Marke "upv") über einen einzigen Aufruf von DeviceIoControl.

Über den IOCTL-Kode IOCTL_VLPT_AnchorDownload ist ein Umkonfigurieren des Controllers jederzeit möglich, um ihn an eine spezielle Aufgabe anzupassen. (Der vorhandene Quelltext USB2LPT.A51 sollte dazu verwendet werden.) Damit stellt das Gerät auch eine Art Hosentaschen-Entwicklungskit für EZUSB AN2131/CY7C68013 dar.

In nebenstehender Grafik können Sie die Tabs anklicken, um sich die angebotenen Eigenschaftsseiten ansehen zu können.


Häufig gestellte Fragen

Diese befinden sich auf einer gesonderten Seite

Liste der Nachbauten


Briefkasten Henrik HaftmannHTML-Mail, TOFU-Mail, oder Email mit mehr als 10 Zeilen Footer wird nicht akzeptiert!,
extern Chemnitz, den 15. September 2009