Dieses (nicht mehr einzigartige) Gerät ermöglicht den Anschluss eines USB-Druckers an ein Parallelport. LPTzUSB (Namensänderung wegen Androhung einer Markenrechtsklage) kann direkt oder mit einem Verlängerungskabel am Druckerport des Rechners verwendet werden (hat einen 25pol. SubD-Stecker). Auf der anderen Seite wird das zugehörige USB-Kabel mit dem flachen USB-A-Stecker eingesteckt. Am Drucker sollte die quadratische USB-B-Buchse vorhanden sein.
Der eingesetzte Host-Controller unterstützt USB Full-Speed (12 Mbit/s) und Low-Speed (1,5 Mbit/s), nicht jedoch High-Speed (480 Mbit/s).
Je nach Situation kann der Einsatz eines Steckernetzteils notwendig werden! Ob die Firmware auch USB-Hubs unterstützt ist mangels Test nicht aussagbar. Es wird nicht empfohlen und erscheint auch unsinnig.
net use lpt1 \\rechnername\freigabename
“
aufs Parallelport legen.
Wegen des sehr geringen Datendurchsatzes (ca. 30 kByte/s) des unten aufgeführten Modells ist eine Nachfolgeversion mit PIC32MX420, AT32UC3B0128 oder LM3S5632 in Vorbereitung. Diese Lösungen sind obendrein billiger.
Weil dieser Konverter den beim Bastler sehr gebräuchlichen Mikrocontroller-Chip ATmega16 sowie einen „bidirektionalen“ USB-Host/Device-Controller enthält, lässt sich damit alles mögliche programmieren.
Vielleicht braucht ja jemand auch einen Konverter von
GPIB (IEEE488) auf USB.
Also dass sich der USB-Drucker als ein GPIB-Drucker ausgibt.
Kein USB-GPIB-Konverter der herkömmlichen Art.
Diese sind USB-Devices und können nicht direkt einen Drucker ansteuern,
sondern brauchen dazu einen PC und ein geeignetes Capture-Programm.
Solche USB-GPIB-Konverter bilden GPIB als TMC ab.
Dieser Aufbau geht von einer professionell hergestellten Leiterplatte aus und erfordert feinfühligen Umgang mit dem Lötkolben. Die Produktionsdaten liegen im Eagle-Format vor. Zur Minimierung des (automatisierten) Bestückungsaufwandes wird einseitig bestückt.
Die Schaltung ist so ausgelegt, dass man nur einen SubD-Programmieradapter braucht, um die Firmware einzuspielen. Es wird kein gesonderter ISP- oder gar JTAG-Anschluss benötigt.
Der Programmieradapter ist nicht kompatibel mit dem für USB2LPT Low-Speed, erfüllt aber den gleichen Zweck.
Stück | Bauteil | Bestell-Bezeichnung | EVP [€] | Lieferant |
---|---|---|---|---|
1 | USB-Host/Device-Controller SL811HST-AC | 428-1464-ND | 6,74+ | DigiKey |
1 | Spannungsregler TPS76133 | 296-11010-1-ND | 0,89+ | |
1 | Längsregler 5 V | µA78L05 | 0,12 | Reichelt |
1 | Mikrocontroller ATmega16 TQFP-Gehäuse | ATMEGA 16-16 TQ | 2,55 | |
1 | Quarz 12000 kHz | 12,0000-HC49U-S | 0,23 | |
1 | SubD-Stecker 25pol. | D-SUB ST 25 | 0,10 | |
1 | LED rot + LED grün | LED 3mm rt | 0,05 | |
1 | LED 3mm gn | 0,05 | ||
1 | USB-Buchse Typ A | USB AW | 0,20 | |
1 | Hohlbuchse | HEBW 21 | 0,26 | |
2 | „Fußvolk“ | PCC2233CT-ND | 0,156+ | DigiKey |
2 | X7R-G0603 100n | 0,05 | Reichelt | |
2 | NPO-G0603 22p | 0,05 | ||
2 | rad 47/16 | 0,04 | ||
1 | BAT 54C | 0,07 | ||
1 | 1N4148SMD | 0,04 | ||
1 | PFRA 010 | 0,46 | ||
2 | SMD-0805 2k2 | 0,08 | ||
1 | BCN16 22k | 0,02 | ||
1 | BCN16 22 | 0,02 | ||
1 | Selbstbaugehäuse | COM 938 | 0,30 | |
1 | USB-Kabel | AK 672/2-2,0 | 0,60 | |
1 | Leiterplatte | ul-11.brd | 5,00 | h#s |
Zunächst werden die SMD-Bauelemente und der Quarz bestückt. Der USB-Host/Device-Controller mit seinem 0,5-mm-Beinabstand erfordert besonders große Sorgfalt.
Wie schon vom USB2LPT bekannt besteht das Problem,
dass es keine
USB-Buchsen für Leiterplatten- Nachtrag: Vor dem Verlöten der USB-Buchse müssen die seitlichen
Kontaktfedern ganz ausgebogen werden!
Ansonsten geht der Stecker zu schwer hinein bzw. verformt sich.
Alternativ: Bestückung der USB-Buchse mit einem gesteckten Stecker.
Der SubD-Stecker wird in der gewohnten Kantenbestückung angesetzt.
Das Loch für die LEDs sowie Beschriftungs-Etiketten nicht vergessen!
Die Programmierung des ATmega16 erfolgt mit einem speziellen
Parallelport- Die Konfigurationsbits sind wie im folgenden Bild zu setzen:
Wer mit einer geregelten 5-V-Quelle speisen will
(bspw. via Tastaturbuchse vom PC-Netzteil),
muss mit der internen Lötbrücke SJ1 den Längsregler totlegen.
Dazu Flächen 2-3 verbinden.
Der Zweck der selbstrückstellenden Sicherung ist,
dass man ein normales Parallelport-Gerät anschließen kann,
welches die Pins 18-25 kurzschließt, ohne das Netzteil abzuschießen. Für den Betrieb von LPTzUSB wird wärmstens ein RS232-TTL-Konverter empfohlen, mit dem über die serielle Schnittstelle
und bspw. HyperTerminal bei 38400 Baud Statusinformationen angezeigt werden:
Übrigens, die Farben werden vom ATmega-Programm generiert!
Kein Windows-Programm wurde hier geschrieben.
Die Bytes der angezeigten Deskriptoren haben folgende Bedeutung:
Das Fertiggerät gibt's je nach Bedarf ohne Netzteil, mit normalem
Steckernetzteil oder Schaltnetzteil. Hier abgebildet ist's mit
Reichelt-Schaltnetzteil.
Ansonsten besteht die Möglichkeit, Druckausgaben in einer Datei
aufzufangen und mit dieser Datei an einem USB-fähigen Rechner das
Drucken zu vollenden.
Es gibt Ethernet-zu-USB-Konverter günstig zu kaufen (in Routern
und DSL-Routern eingebaut), die, falls Ethernet vorhanden, ein
solches Gerät überflüssig machen.
Ein solches Gerät zu bauen ist erst seit 1-2 Jahren, mit dem
Erscheinen von USB-Hostcontrollern und USB-OTG-Geräten möglich.
Ein vergleichbares, deutlich komfortableres Gerät gibt es bei
ipcas GmbH,
jenes unterstützt auch Ethernet sowie Speichern (also papierlos) auf USB-Stick, für rund 400 € (2010).
Noch nicht implementiert:
Bei zu geringer Spannung blinkt die rote LED, und Sie sollten ein
Netzteil (5 V Gleichspannung, geregelt!, ca. 50 mA) anstecken.
Falls Sie ein bus-powered Gerät anschließen (bspw. einen USB-Stick),
müssen Sie ein Netzteil verwenden, welches den Strombedarf
des angeschlossenen Gerätes deckt.
Für die meisten Geräte genügt 100 mA, USB-spezifiziert sind bis zu 500 mA.
Sie können die aktuelle Betriebsspannung im HyperTerminal-Fenster sehen.
Wichtig! Ungeregelte oder zu hoch eingestellte Netzteile
zerstören die Schaltung!
Sie können das lästige Steckernetzteil vermeiden mit einer der
folgenden Maßnahmen:
Auch alle diese Ansätze benötigen Strom, wobei die erstere noch einigermaßen klein ausfällt.
Heutzutage würde ich das Problem mit einem
Raspberry Pi erschlagen.
Alles was man noch braucht ist ein Adapter von seinem GPIO zu einem 25-poligen SubD-Stecker —
oder was auch immer der Steinzeitcomputer für eine Schnittstelle hat.
Um nichts kaputt zu machen mit Pegelkonvertern (74LVC04)
und mit einer Fangschaltung (Latch) für die
8-Bit-Paralleldaten bei Strobe (74LVC574).
Ungefähr so wie in jenem Schaltplan.
Serienwiderstände im unteren kΩ-Bereich dürften genügen,
um die GPIO-Anschlüsse zu schützen.
Will man Pins sparen, nimmt man ein Parallel-Seriell-Schieberegister (74LVC299),
welches sich mit SPI rasend schnell auslesen lässt.
Auf dem Raspberry muss dann nur noch eine Software laufen,
die die Parallelport-Daten entgegennimmt, filtert und auf den USB-Drucker ausgibt.
Dafür bietet sich die „native“ Programmiersprache
Python an.
Auch jedes andere Entwicklungssystem mit USB-Host und genügend GPIOs
eignet sich dafür.
Allerdings ist das Angebot derweil unüberschaubar geworden,
sodass Raspberry Pi oder Banana Pi
als verbreitetste Einplatinencomputer am besten geeignet erscheinen.
Steht ein PC zur Verfügung, kann man die Paralleldaten auch über USB einspeisen,
über diese einfache Schaltung, die ohne Pegelkonverter auskommt.
Filtern und Ausgeben macht dann der PC.
Dafür sind auf der o.a. Webseite bereits Lösungen für Windows angegeben.
Die Fangschaltung, die für den FT245R bei manchen Parallelports erforderlich ist,
erspart man sich bei Verwendung eines dedizierten Mikrocontrollers,
etwa einem ATmega32U4 auf
Breakout-Board
(alternativ Arduino Leonardo/Micro)
oder einem PIC16F1459 auf einem Steckbrett (dieser braucht keinen Quarz!).
Programmierung
Software
Schaltplan,
Eagle-Daten
der Leiterplatte,
Programmieradapter unverändert
Inbetriebnahme
Allerdings ist diese Maßnahme ziemlich sinnfrei für Batteriebetrieb;
der dann permanent heiße Sicherungskörper würde den Energiespeicher
leersaugen.
Lieferumfang
Häufig gestellte Fragen
Hier bietet es sich an, die Firmware des LPTzUSB anzupassen und das
„Debug-Terminal“ als seriellen Anschluss zu verwenden.
Bei Bedarf bitte melden! Email siehe unten!
Als Handshake muss Xon/Xoff einstellbar sein, Hardware-Protokoll kann
nicht (so einfach) via Debug-Terminal realisiert werden.
Die heutigen Drucker sollten jedoch so riesige Eingangspuffer haben,
dass man auch ganz gut ohne Handshake drucken kann.
Denn wer seriell druckt, druckt sicher nur Text, kaum Vollgrafik!
Eine Versorgung in umgekehrte Richtung ist beim host-zentrierten USB
nie vorgesehen.
Problem ist in aktueller Revision 1 korrigiert.
(am sichersten über eine selbstrückstellende Sicherung) –
kein extra Kabel zum LPTzUSB zu sehen!
(Bei Revision 1 muss im Innern eine Lötbrücke zur Umgehung des
5-V-Längsreglers gesetzt werden.)
bspw. mit dem Anschlussteil eines alten (auch festgefressenen) CPU-Lüfters,
einfach Lüfter abschneiden und Hohlstecker anlöten,
zum Rechner herausführen, anstecken, fertig (nur Revision 1!)
(Aktivboxen, Modem, Scanner, Notebook;
Drucker erscheint am logischsten, sofern möglich)
Gibt's schon!
Achtung:
Jene Webseite ist nicht mit Internet Explorer verwendbar.Modernere Lösungsansätze
Entwicklungsboard mit USB-Hostcontroller
LptCap und PC