Brief mit allen Rechtschreibfehlern
Hallo Henrik,
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.
Gruß
Karl-Heinz Schröter
Software
USB2LPT mit Durchsteck-ATmega8, eigene Modifikationen
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.
Sieben Bauelemente machen einen USB2LPT
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 (nicht ATmega48, ATmega88, ATmega168) verfügbar.
Es ist die Datei usb2lpt6.hex und deren Quelltext.
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.
Sieben Bauelemente machen ein USB2LPT-kompatibles Multi-E/A-Gerät
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.
Hinweis: Zurzeit fehlt dafür eine Firmware-Implementierung!
FAQ
Mit oder ohne Dioden?
- 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 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)
– Verzögerte Weiterentwicklung der Firmware meinerseits
- 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.
Henrik Haftmann,
letzte Ãnderung: 01.09.2011