Stichworte: USB, LPT, Parallel, Parallelport, Druckerport, Konverter, Adapter; Programmer, ATmega, ISP, FPGA, CPLD, JTAG; Portzugriff, IEEE 1284, IEEE1284
Eine Bauanleitung, Fertiggerät verfügbar
Im Gegensatz zu allen anderen USB→Parallel-Adaptern ermöglicht dieses hier den Anschluss beliebiger Hardware (nicht nur Drucker), ohne Software anzupassen! Ein Parallelport wird durch den zugehörigen Treiber virtualisiert. Die Schaltung passt in ein gewöhnliches Stecker-Ein umgekehrtes Gerät (LPTzUSB), welches den Anschluss eines USB-Druckers an ein Parallelport ermöglicht, ist funktionstüchtig und nachbaubar.
Dieses USB2LPT kann nicht (sinnvoll) dazu eingesetzt werden, parallele Druckdaten eines anderen Rechners aufzusammeln. Dazu gibt es LptCap, basierend auf FT245.
Für Anfragen nach Fertiggeräten bitte mailen.
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- 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
(Low-Speed, Full-Speed: sogar 1 ms) abgewartet werden muss.
Das kann im Extremfall zu 100-facher Zeitdehnung(!) führen. 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
Reichelt:
AK USB 102
für 5,95 €)
(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-
Funktioniert angeblich:
Funktioniert definitiv nicht: Die Parallelport-Anschlussmöglichkeiten zusammengefasst:
Neuere BitBang-Software von mir ist grundsätzlich so gestaltet,
dass sie – ggf. mit verminderter Performance – auch mit einfachen USB-Paralleldrucker-Konvertern (um 5 €) funktioniert.
Beispielsweise
Treiber für Windows 98/Me/2k/XP/Vista/7/8/10/11
Achtung: Für die Low-Speed-USB2LPT 1.5 und 1.6 unter Vista/7/8
ist die Portzugriffsemulation noch einmal um den Faktor 8 (!) langsamer.
Für Relais und Lampen ist das dennoch ausreichend.
Es gibt drei neue Seiten (Tabs) bei „Eigenschaften“ im Geräte-Manager.
Alle Seiten sind in zurzeit 14 Sprachen verfügbar.
Der Tab „Anschlusseinstellungen“ kommt von Windows.
Der Treiber ist zertifiziert. Das Zertifikat ist auf unbestimmte Zeit gültig, Microsoft hat bis dato kein Ablaufdatum angegeben.
Für den äußerst seltenen Fall, dass Sie Win64-Portzugriffe im Kernel Mode
abfangen müssen, müssen Sie außerdem den
PatchGuard deaktivieren.
Sonst brauchen Sie sich über den nach einigen Sekunden oder Minuten
erscheinenden Bluescreen 0x109 nicht zu wundern.
Dafür gibt es beim Treiber-Setup ein entsprechendes Ankreuzfeld.
Beipackheft zum Audrucken
Ü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.
Das USB2LPT-Projekt ist 2012 stecken geblieben: HTML-Mail,
TOFU-Mail,
oder E-Mail mit mehr als 10 Zeilen Footer wird nicht akzeptiert!
Bei Problemen mit dem Gerät oder Treiber geben Sie bitte an:Einschränkungen, Performance
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.
Hinweis: Genau betrachtet ist der Aufwand für diesen USB-zu-Parallel-Konverter
oftmals überflüssig, denn:
Somit braucht man USB2LPT nur für Netbooks und Subnotebooks ohne ExpressCard-Schacht.
Sie sind nur weniger gut handhabbar (PC muss ausgeschaltet und geöffnet werden).
Allerdings sind diese recht teuer, und man muss man aufpassen und solche kaufen,
die intern per PCIexpress und nicht per USB funktionieren.
Original-Adresse? schnell? Max. Ports steckbar im Betrieb? Am PC? Am Notebook? Kosten ca. / € Bemerkung Onboard ja ja (1-5 µs) 1 - alte
Boardsalte Geräte 0 Beste Lösung
ISA-Karte ja 3 nein nein 0 (Trödelmarkt) Nur für sehr alte Desktops
PCI-Karte nein (verschoben) ja (1-2 µs) ≥ 3 ja nein 11 Gut und preiswert
PCI-Karte mit Adress-Remap
Originalquelle?ja! 56 Bestens für Desktops
PCIexpress-Karte nein (verschoben) 20 Gut und preiswert
PCMCIA-Karte ja ja (1-10 µs) 3 ja mit
Adapteralte Geräte 50+ (Trödelmarkt) Nur für sehr alte Laptops
ExpressCard via PCIe nein (verschoben) ja (1-2 µs) ≥ 3 ja 40 Lästig dickes Kabel
h#s USB2LPT ja (emuliert) nein (≥ 125 µs) 255 ja 30 open-source
ExpressCard via USB ja (emuliert)
(nur via InpOut32.dll
und Zusatzschaltung)OUT: ja (≤ 10 µs)
IN: nein (1000 µs)typ. 2 ja nein ja 30 USB→Drucker-Konverter ≈ 99 ja 6
eSATA2LPT ja (emuliert) ja (5 µs) typ. 2 nein mit
Adaptervia eSATA 30 denkbar; Stromversorgung erforderlich
Aktuelle Versionen
Es gibt auch ältere Ausgaben,
die unter Umständen leichter nachbaubar sind,
sowie ein Nachbauvorschlag mit Durchsteck-Bauteilen.
Sie werden ebenfalls softwaretechnisch voll unterstützt.
Low-Speed
(Aufbau-Anleitung)
USB2LPT 6
High-Speed
(Aufbau-Anleitung mit Video)
USB2LPT 7
Billigere Alternative: Entwicklungsboard von eBay.
Inbetriebnahmeanleitung (d.h. Konvertierung zu einem USB2LPT 1.7) hier.
Software
Dieser WDM-Treiber hat nur wenig mit Plug'n'Play am Hut.
Es werden einfach die LPT-Portadressen per Debugregister-
So viele konnte man noch nie zusammen im Rechner haben!
Niemals diesen Treiber mit etwas anderem als diesem USB2LPT benutzen!
Es funktioniert nicht — und kann Ihr Betriebssystem durcheinanderbringen.
Neu: Es installieren sich auch funktionelle Treiber
für 64-Bit-Editionen von Windows, das heißt, die API funktioniert,
seit 2015 auch die Portzugriffsumlenkung.
Als Winword, nicht als PDF! Denn PDF ist kein Quelltext.
Verwendung
Schauen Sie unbedingt beim Geräte-Manager nach!
Unter „Anschlüsse“ befindet sich das Gerät. Bei Auswahl des
Eigenschafts-Dialogs gibt es drei zusätzliche Tabs, Emulation,
Statistik und Monitor.
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.
Häufig gestellte Fragen
Diese befinden sich auf einer gesonderten Seite
Kein Weiterso
Low- und Full-Speed-Alternativen werden besser eingestampft, auch deswegen.
Keine echte LPT-Kompatibilität via Gerätemanager, das Problem konnte ich nie lösen.
lösen erschlagen.
Nachbauten
Feedback