ich habe das hervorragende USB2LPT-Projekt gefunden
und sofort auf einem Stückchen Lochraster-Platine
aufgebaut. Funktioniert als virtueller LPT-Port
wirklich bestens gegenüber den käuflich erwerbbaren
USB-Centronics Adapter-Kabeln.
Da ja SMD-Bauteile nicht so einfach handhabbar sind,
habe ich versucht, die Schaltung in einen "normalen"
25poligen D-Sub Stecker mit konventionellen Bauteilen
reinzubekommen und es ist möglich.
Den ATmega8/48/88 gibt es ja auch im DIL28-Gehäuse,
was in bestimmte 25polige D-Sub Hauben passt, nur eben
nicht in die üblichen verschraubbaren D-Sub Hauben (da
fehlen einige wenige mm).
Geeignete D-Sub Hauben findet man bei Conrad unter
FLIP TOP HAUBE FÜR D-SUB 25-POLIG
Art.-Nr.: 715992 - 62
für ca. 0,80 Cent und weniger. Bei Segor gibt es die
auch, sind aber teurer als bei Conrad und leider nicht
bei Reichelt.
Diese Hauben haben eine lichte Innenweite von knapp 42
mm, so dass ein DIL28 IC bequem reinpasst. die
Breite/Tiefe ist ziemlich knapp, aber ausreichend für
die Schaltung.
Im Anhang sind die Schaltung und ein Layout der
zweiseitigen Leiterplatte (mit Eagle unter
Zuhilfenahme der korrigierten 25polihen D-Sub Buchse
F25K entworfen).
Man muss auf die LED-Anzeige und eine USB-Buchse
verzichten, aber das ist nicht besonders
einschränkend. Die LED mit dem strombegrenzenden
Widerstand könnte man "frei verdrahtet" auf der
Rückseite der Leiterplatte realisieren und das
USB-Kabel wird eben fest angelötet (spezielle Lötaugen
für die vier Kabeladern sind auch nicht möglich, kann
man aber an die entsprechenden Bauteile der Schaltung
direkt anlöten).
Vielleicht hilft das ja, dass mehr "Selbsbastler" sich
solch ein USB2LPT Adapter-Kabel anfertigen können.
Firmware für ATmega48 und 12-MHz-Quarz
natives Interface, erfordert Deaktivierung des Treiberzertifizierungszwangs bei Vista+.
Wegen arger Platzprobleme bei vollständigem Mikrocode-Dekoder sind die USB-Deskriptoren im EEPROM(!) untergebracht
Firmware für ATmega8, ohne Quarz
zusätzliches HID-Interface, speziell für
diese inpout32.dll
nutzbar, kann das Problem Treiberzertifizierungszwang und Admin-Rechte umgehen.
Mit USB-Bootloader zum Firmware-Update ohne Brücken stecken / löten
USB2LPT mit Durchsteck-Bauteilen, eigene Modifikationen
Man kann ja noch mehr weglassen. Und ein paar extra E/As gewinnen.
Geiz ist geil.
Die Minimalbeschaltung
Ich habe daraufhin auf einem Steckbrett die o. g. Schaltung nachgebaut
und alles überflüssige weggelassen.
Insbesondere die Zener-Dioden kann man weglassen.
Aber: Siehe unten!
Sogar der Elektrolytkondensator C4 darf noch entfallen.
Die Leuchtdiode am Pin 23 des ATmega8 ist ja ohnehin überflüssig.
Hinweis: Zurzeit ist nur die Firmware für ATmega8 verfügbar.
Es ist die Datei usb2lpt6.hex und deren Quelltext.
Denn die Firmware für den ATmega48 erfordert einen Quarz und damit 3 Bauelemente mehr.
Die Multi-E/A-Beschaltung
Wünscht man eher eine digitale Ein/Ausgabeschnittstelle mit 20 (statt 17) E/A-Leitungen,
ist der folgende Schaltplan interessant.
Gesteuert wird's am besten per USB2LPT-API.
Die Datenrichtung jeder einzelnen Leitung lässt sich damit getrennt steuern.
Das macht ein Hochvolt-Programmiergerät für ATmega sagenhaft einfach,
weil ein Druckerport eben doch zu knapp ist.
Für eine Leuchtdiode ist kein Portpin mehr frei.
Es sei denn, man verzichtet auf RESET
(und hat ein Hochvolt-Programmiergerät zur Programmkorrektur).
Der Kurzschlussschutzwiderstand R4 „versorgt“ Pin 25 der SubD-Buchse mit 5 V.
Damit kann man gut weitere Basteleien ohne Hilfsnetzteil betreiben.
Oftmals wird ein kleiner Hochsetzsteller für 12 V benötigt,
dafür bietet sich eine Schaltung mit MC34063 an.
Was ist besser bzw. richtiger: 3.3 Volt (mit Dioden) oder 5 Volt (ohne Dioden)?
Je nachdem, was man will.
Keine der beiden Lösungen ist vollkommen richtig, sondern immer ein Kompromiss.
3,3 V:
Richtig für USB, aber angeschlossene Hardware, die 5 V erwartet, könnte versagen
Empfehlenswert, wenn Hardware angeschlossen wird, die sowieso nur 3,3 V verträgt
Eigentlich wird der ATmega8 übertaktet, aber das ist in praxi kein Problem
Sauberer USB-Schlafmodus mit 0,1 µA Stromaufnahme
5 V:
Richtig für Parallelport, kein Übertakten,
aber Übersteuerung der USB-Leitungen
Deshalb verhältnismäßig große Serienwiderstände
(oder die sattsam bekannte Lösung mit den Z-Dioden, siehe oben)
Problematischer USB-Schlafmodus, weil USB-Eingang nahe halber Betriebsspannung
Mit oder ohne Quarz?
Was macht den Unterschied zwichen Quarz und ohne Quarz aus?
Mit (12 MHz):
+ Angeblich stabilerer Betrieb (konnte ich nicht nachvollziehen und
wurde bloß in einem Forum behauptet und dann wieder dementiert,
keine klaren Aussagen, wie in allen sch… Foren)
+ Kleinere Firmware passt in ATmega48
– Beschaffungs- und Bestückungsaufwand
– Trickreiche Programmierung des USB-Schlafmodus' für ATmega8
(ohne Tricks für ATmega48 weil Pegelwechsel-Interrupt vorhanden)
Ohne:
+ Zwei freie Pins (zusammen mit dem LED-Pin ergibt sich ein
20-Pin-I/O-Gerät, welches an USB2LPT 1.7 angepasst ist — siehe oben)
– Andere Firmware erforderlich
+ Zwang zu 8 KByte Flash ermöglicht serienmäßigen USB-Bootloader
Angedacht war auch mal eine 18-MHz-Quarz-Lösung:
+ Mehr Rechenleistung für den ATmega8
+ Sofortige Auswertung der USB-CRC (USB-standardkonform),
da hat jemand das V-USB dahin gehend erweitert.
– Ein ATmega8 wird übertaktet, der ATmega88 ist teurer
Die anderen Punkte aus der o.g. Liste bleiben bestehen.
Welche Firmware? Welcher Controller?
Was bedeutet +BL?
Mit USB-Bootloader.
Gibt's die Firmware für den ATmega8 auch mit Quarz?
Kommt noch. Für alle von V-USB unterstützten Quarzfrequenzen.
Soll man eher den ATmega8 oder den ATmega48 bevorzugen?
Den ATmega8. Kaum teurer, mehr Flash-Speicherplatz für HID-Interface, erspart Quarz.
Die ATmega48-Firmware existiert für einige ältere USB2LPT 1.5 sowie für Leute,
die gerade einen ATmega48 herumliegen haben.
Ein ATmega88 oder ATmega168 lohnt sich nicht.
Es bleiben Fragezeichen im Geräte-Manager stehen. Was tun?
Die Firmware ab 7. Mai 2013 erfordert auch eine neue INF-Datei. Also Treiber neu installieren.
Dazu muss man den Treiberzertifizierungszwang unter Vista und höher (irgendwie) deaktivieren. (Betrifft nur 64-Bit-Versionen.)
Wenn das HID-Interface zum Zugriff genügt, kann man das Fragezeichen ignorieren.
Siehe nächste Frage.
Der USB2LPT funktioniert unter XP, aber nicht mehr unter Vista oder neuer; Fragezeichen im Geräte-Manager. (Betrifft 32 und 64 Bit.) Unbrauchbar?
Neue Firmware (ab 7. Mai 2013) flashen. Dann geht's. Diese benutzt (zulässige) Interrupt-Endpoints statt (schnellere) Bulk-Endpoints.
Umschalten kann man das künftig im Geräte-Manager.
Ohne Zener-Dioden?
Funktioniert bei allen meinen PCs,
aber neulich (Dezember 2013) ist mir ein Notebook untergekommen,
wo es partout nicht funktioniert!
Daher: Beim 5-V-Design sicherheitshalber beim
Original-V-USB-Design bleiben und die beiden 3,9-V-Zener-Dioden einbauen.
Möglicherweise muss dann der Widerstand R1 ebenfalls etwas erniedrigt
werden, was zu testen wäre.