USB2LPT: Inhalt
USB2LPT

Dies ist die Hilfedatei zum USB-zu-Parallel-Umsetzer.

Das USB2LPT-Gerät ermöglicht gemeinsam mit dem Treiber die Umlenkung von Portzugriffen auf ein vermeintliches Parallelport und damit die Emulation einer parallelen Schnittstelle am USB. Bis dato gibt es nur diese eine Lösung. Sie läuft unter allen USB unterstützenden Windows-Betriebssystemen; die Lauffähigkeit auf AMD64-Plattformen ist in Arbeit.

haftmann#software, 14. November 2009

Diese Datei enthält vor allem kontext-sensitive Hilfe für die drei Eigenschaftseiten im Geräte-Manager und ist nicht sonderlich zum Durchblättern geeignet.

Für weitergehende Informationen, Dokumentationen und Treiber-Updates siehe http://www.tu-chemnitz.de/~heha/usb2lpt/

Hinweis:	Benutzen Sie im Geräte-Manager die Kontexthilfe-Funktion, oder drücken F1 bei fokussiertem Dialogelement!


Emulation
Emulation: Der „Trick“ von USB2LPT, genauer, des Treibers, ist die Umlenkung von in Anwendungsprogrammen enthaltenen Ein/Ausgabebefehlen auf USB.

Einige Details können mit dieser Eigenschaftsseite eingestellt werden.

Hinweis:	Benutzen Sie die Kontexthilfe-Funktion, oder drücken F1 bei fokussiertem Dialogelement!


Portadresse: Wählen Sie eine zu emulierende Portadresse aus.

Empfehlung:	eine der Vorgaben 378h, 278h oder 3BCh stehen lassen

Sie können eine tatsächlich vorhandene Portadresse „wegemulieren“. Die vorhandene Schnittstelle wird faktisch deaktiviert.
Wenn der Rechner einen ISA-Bus hat, sollte die Adresse 278h nicht verwendet werden, weil diese den ISA-PnP-Mechanismus außer Betrieb setzt. (Dieser arbeitet über Schreibzugriffe auf Portadresse 279h.)

Sie können auch eine wahlfreie Adresse angeben.
• Vorsicht! Sie sollten wissen, was Sie damit tun! Wenn Sie die Portadresse Ihrer Netzkarte, VGA-Karte oder Festplatte überdecken, sind die Folgen katastrophal.
Eine wahlfreie Adresse stellt die einzige Möglichkeit dar, mehr als 3 Parallelschnittstellen an einem Rechner zu betreiben. Dazu muss Ihr Anwendungsprogramm die Möglichkeit bieten, eine wahlfreie Adresse angeben zu können (mit dem gleichen Warnhinweis).

Hinweis:	Die angezeigte LPT-Nummer (Name) ist Usus, aber irrelevant. Eine Reihe von Programmen verwenden die gleiche Zurdnung, andere Programme öffnen ein Parallelport mit Namen. In diesem Fall ist der angezeigte Name beim Tab „Anschlusseinstellungen“ (Windows 98/Me: Geräte-Manager) entscheidend.


LPT-Erweiterung: Einige wenige Anwendungsprogramme benötigen das Parallelport als Turbo-Schnittstelle mit mehr als drei Portadressen. Die beiden erweiterten Modi nennen sich ECP und EPP, sie können koexistieren. USB2LPT emuliert alle diese Erweiterungen. Das Ur-Parallelport bekam die Abkürzung SPP.
Die meisten Programme machen keinen Gebrauch davon, weil das den Anwender zwang, im BIOS-Setup eine geeignete Einstellung vornehmen zu müssen.

Empfehlung:	SPP (höhere Modi nur, wenn das Anwendungsprogramm danach ausdrücklich verlangt)

Die EPP-Ports liegen auf Basisadresse+3..+7, die ECP-Ports auf Basisadresse+400h..403h. Für weitergehende Infos zur Belegung dieser Adressen und zum Verhalten des Parallelports muss auf externe Quellen verwiesen werden, beispielsweise www.beyondlogic.org oder msdn.microsoft.com.


Anzapfungsmethode: Weil es keine geeignete Windows-API gab und gibt, mit der man ein Parallelport vernünftig hätte ansteuern können (außer zum Drucken), blieben den Anwendungsprogrammierern nichts anderes übrig, als ihre Programme mit entsprechenden Ein- und Ausgabebefehlen zu spicken. Diese zu finden und umzuleiten ist der eigentliche Kunstgriff dieses Konverters (genauer, des Treibers), mit mehr oder weniger rabiaten Mitteln.

Empfehlung:	Alle Schalter eingeschaltet
Das weniger rabiate Mittel hat automatisch Vorrang.

Die Anzapfung von READ_PORT_UCHAR/WRITE_PORT_UCHAR ist das weniger rabiate Mittel, welches nur bei sehr gesitteten Programmen und faktisch nur unter Windows 2000, XP und Vista funktioniert.
Für alle anderen Fälle sorgt die Verwendung von Debugregistern, dass kein Ein/Ausgabebefehl durch die Lappen geht. Einschränkend muss gesagt werden, dass diese von anderen Kernel-Teilen gelegentlich gestohlen (gelöscht) werden (Grund ist nicht ersichtlich) und dass es nur 4 Sätze davon gibt.

Bei der AMD64-Plattform steht die Anzapfung von Kernel-Funktionen nicht zur Verfügung; es gibt schlichtweg keine.

Unter Windows 98/Me wird seit September 2009 zusätzlich die klassische, dokumentierte Portumleitung per IOPM-Trap benutzt und nicht extra gezählt.


Performance-Optionen: Ein USB-Transfer dauert 125 µs, bei Full- und Low-Speed gar 1 ms. Das ist verglichen mit einem Ein/Ausgabebefehl (1 µs) eine Ewigkeit. Ein Anwendungsprogramm würde ohne spezielle Maßnahmen sehr langsam laufen.

Ausgabebefehle können „en bloc“ als Bündel zum USB ausgegeben werden. Die maximale Schreibverzögerungszeit kann hier angegeben werden.
Beachte: Jeder Eingabebefehl führt zwangsweise zur Übertragung aller vorher aufgesammelten Ausgabebefehle, um die Reihenfolge einzuhalten.

Empfehlung:	eingeschaltet, 200..500 ms
Ausnahme sind Schrittmotortreiber; hier sollten kürzere Zeiten probiert werden.

Bei Eingabebefehlen ist kein Cacheing möglich. Bei reinen Ausgabeports schafft das Rücklesen eines Spiegel-Bytes (= letztes ausgegebenes Byte) Abhilfe. Jedoch kann am USB2LPT angeschlossene Hardware Ausgabeleitungen auf ein bestimmtes Potenzial (meist Massepotenzial) klemmen, was gelesen und ausgenutzt werden kann. Mit anderen Worten, am Druckerport gibt es kein wirkliches Ausgaberegister.

Empfehlung:	eingeschaltet
Für die meiste Hardware wird es funktionieren. Wenn es nicht funktioniert, oder Sie die Hardware diesbezüglich kennen, schalten Sie die Spiegel aus.


Statistik
Statistik: Für die beiden Anzapfungsmethoden (per Debugregister und angezapften Kernel-Funktionen) werden insgesamt 7 Zugriffszähler geführt.

Bei der AMD64-Plattform steht die Anzapfung von Kernel-Funktionen nicht zur Verfügung; es gibt schlichtweg keine.

Außerdem erfolgt hier eine Anzeige, ob die begrenzte Resource Debugregister (es gibt systemweit 4) tatsächlich Verwendung findet.

Zusätzlich bietet der Dialog Zugriff auf ein USB2LPT-spezifisches Extra-Register sowie ein Firmware-Update.

Hinweis:	Benutzen Sie die Kontexthilfe-Funktion, oder drücken F1 bei fokussiertem Dialogelement!


IN- oder OUT-Befehle: So viele Portzugriffe wurden verarbeitet.

Während OUT-Befehle kaum Zeit kosten, dauern IN-Befehle bestenfalls 125 µs, bei Low-Speed sogar 1 ms, zurzeit unter Vista und Windows 7 sogar 8 ms! (Sofern diese nicht per „Schreibcache“ abgefangen werden.)


Emulationsfehler: Zählt Vorkommen von nicht im Treiber emulierten Befehlen (die schwierig zu handhaben sind und bisher nie vorkamen), nämlich READ_PORT_BUFFER_UCHAR; WRITE_PORT_BUFFER_UCHAR; READ_PORT_BUFFER_USHORT; WRITE_PORT_BUFFER_USHORT; READ_PORT_BUFFER_ULONG; WRITE_PORT_BUFFER_ULONG; (rep) insb; (rep) outsb; (rep) insw; (rep) outsw; (rep) insd; (rep) outsd.


Gestohlene Debugregister: Da Debugregister eine einmalige Ressource des Computers sind, die nirgends zentral verwaltet werden, kann sich prinzipiell jeder derer bemächtigen. Der Zähler zählt, wie oft jene von irgendwo überschrieben wurden. Das Problem ist, dass dann einige Ein/Ausgabebefehle „durch die Lappen“ gehen und eine durchgehende Emulation aussetzt, was besonders bei Programmiergeräten zu Fehlfunktionen führt.

Der neue Treiber (ab September 2009) detektiert überschriebene Debugregister zusätzlich per Int2E-Trap und SYSENTER-Trap (werden hier nicht mitgezählt); dies verringert die Gefahr von „Lücken“ erheblich.


Debugregister-Zuweisung: Ein Debugregister (von denen es nur 4 gibt) deckt 4 aufeinander folgende E/A-Adressen ab. Daher ist für SPP, ECP und EPP jeweils 1 Register erforderlich.

Hier erfolgt die Anzeige, welche E/A-Adressbereiche tatsächlich mit Debugregistern abgedeckt sind.

Ursache für Fehlabdeckungen sind:

•	Vorbelegte Debugregister beim Systemstart (bei Windows 98 gelegentlich beobachtet)

•	Benutzte Debugregister beim Treiber-Start (beim Debuggen von Programmen)

•	Konkurrierende (mehrere) USB2LPT

•	Konkurrierende Programme auf der Basis von PORTTRAP.SYS (geplant)

Erstere beiden Punkte lassen sich durch „Belegung erzwingen“ in der Seite „Emulation“ vermeiden.

Die Standardeinstellung „LPT-Erweiterung = SPP“ schont die knappen Debugregister; dann sind ECP und EPP standardmäßig nicht abgedeckt.


Überlänge: Der Zähler zählt Ein/Ausgabebefehle mit mehr als einem Byte Breite (also READ_PORT_USHORT; WRITE_PORT_USHORT; READ_PORT_ULONG; WRITE_PORT_ULONG; in ax,dx; out dx,ax; in eax,dx; out dx,eax). Diese sollten bei gesitteten Anwendungsprogrammen nicht vorkommen. Das Programm LabVIEW macht davon unrühmlichen Gebrauch.


Null setzen: Die Zähler links werden auf Null zurückgesetzt.


USB2LPT-Extras: Ruft einen Dialog auf, mit dem gesonderte, USB2LPT-Firmware-spezifische Einstellungen gemacht werden können.


Firmware-Update: Hier kann eine Aktualisierung der Betriebssoftware des USB2LPT-Gerätes durchgeführt werden.

Beim Low-Speed-USB2LPT mit ATmega8 ist dies konstruktionsbedingt nicht möglich, jedoch wird ein Merker in den nichtflüchtigen Speicher des USB2LPT geschrieben, der beim nächsten Anstecken den Bootloader aktiviert Für diese Funktion muss der Bootloader frühestens vom Juli 2009 sein.

Bei den Cypress-Chip-basierten Full-Speed- und High-Speed-USB2LPT erfolgt nach Angabe des Dateinamens und einer Sicherheitsabfrage ein vollautomatischer Programmiervorgang.


Datenport: Wenn markiert, liefern IN-Befehle kurzerhand das zuletzt ausgegebene OUT-Byte.

Empfehlung:	eingeschaltet
Außer wenn Ihr Programm tatsächlich ECP verwendet – extrem selten!


Steuerport: Wenn markiert, liefern IN-Befehle kurzerhand das zuletzt ausgegebene OUT-Byte.

Empfehlung:	eingeschaltet
Nur wenige Hardware verwendet Steuerportpins zur Dateneingabe.


Extra-Ports: Diese Einstellung ist zurzeit wirkungslos.


Offene Kollektoren: Diese Einstellungen sind vor allem für nicht ganz TTL-kompatible Hardware gedacht.

Normalerweise sollte 5-V-TTL-Technik ohne Pegelumsetzer mit 3,3-V-Quellen (Full- und High-Speed-USB2LPT mit Cypress-Chip) zurecht kommen. Da aber von Problemen berichtet wurde, ist in der Firmware und Hardware die Möglichkeit eingebaut, Ausgänge auf High-Potenzial hochohmig schalten zu lassen. Dann ziehen die externen Pull-Up-Widerstände den Signalpegel unbelastet auf fast 5 V hoch.

Eine andere Anwendungsmöglichkeit der Offenen Kollektoren ist eine kollisionsfreie Wired-AND-Verknüpfung mit der Möglichkeit, Daten ohne Schalten an Richtungsregistern zu lesen oder auszugeben. Der Ur-8051-Mikrocontroller arbeitete so und sparte sich die Richtungsregister ganz.

Bei den mit 5 V laufenden ATmega8-bestücken Low-Speed-USB2LPT entfällt das Pegelumsetzer-Kriterium.

Empfehlung:	ausgeschaltet
Manches Ur-Parallelport hatte tatsächlich Offene Kollektoren am Steuerport; einige moderne Chipsätze emulieren dieses Verhalten heute noch.


Pullups aus: High-Speed: Ein zentraler Transistor aktiviert die externen 5-V-Pull-Ups, die im Normalfall nur extra Strom fressen. Diese können hiermit abgeschaltet werden. Dann sind nur noch schwache interne 3,3-V-Pull-Ups wirksam. Diese können nicht ausgeschaltet werden.

USB2LPT schaltet selbständig die Pullups im USB-Schlafmodus aus, um auf spezifikationskonforme 500 µA Stromverbrauch zu kommen. Außerdem werden sämtliche Ausgänge hochohmig geschaltet.

Beim ATmega-basierten Low-Speed-USB2LPT werden hiermit die internen Pull-Ups abgeschaltet. Dann sind die Eingänge extrem hochohmig, deshalb Vorsicht! Kann man aber auch ausnutzen, etwa um den Ladezustand von Kondensatoren (eines Kabelprüfgerätes) abzufragen.

Empfehlung:	ausgeschaltet (also Pullups EIN)
Bei der direkten Kommunikation via Full- oder High-Speed-USB2LPT zu 3,3-V-Peripherie (einfache, siliziumlose JTAG-Interfaces am FPGA) sinnvollerweise einschalten, da moderne FPGAs nicht 5-V-verträglich sind. Die Pull-Ups sind andererseits hochohmig genug, den FPGA nicht zu zerstören.


Direkte E/A: Dieser Schalter macht aus einem USB2LPT ein digitales Interface mit 17–20 digitalen Ein/Ausgabeleitungen, welches nicht zu einem Parallelport kompatibel ist.

Empfehlung:	ausgeschaltet
Wenn Sie vorhaben, mit der API zu programmieren, können Sie diesen Schalter auch per API aktivieren.


Setzen (und Rücklesen): Übernahme der Werte ins USB2LPT. Diese Einstellung ist persistent, wird im EEPROM des USB2LPT gespeichert.


Kurzschlusstest: Ausführung eines Selbsttests des USB2LPT. Es darf keine Hardware angeschlossen sein!

Bei der Frage nach High-Pegeln an den Ausgängen müssen Sie an allen Portpins eine Spannung messen (vorteilhaft mit einem LPT-Tester). Hiermit wird der korrekte elektrische Anschluss der SubD-Buchse geprüft.


Seriennummer: Alle „originalen“ USB2LPT haben eine Seriennummer, bei Eigenbauten wird „keine“ angezeigt.

Es gibt eine Hintertür, hier auch die Seriennummer zu setzen – wie, steht im Quelltext, sonst wär’s ja keine Hintertür.


Firmware-Datum: Genügend neue Firmware (etwa ab 2005) hat einen Zeitstempel des Erstelldatums. Dieser bedindet sich als 2-Byte-FAT-Datum ab Adresse 6 im XRAM- bzw. Flash-Speicher des Mikrocontrollers, oder wird da emuliert.


Monitor
Monitor: Komfortable Beobachtung und Steuerung des Parallelports.

Sinnvoll, wenn man gerade keinen LPT-Tester parat hat.

Wirklich alle Funktionen eines Parallelports können durchexerziert werden (ECP, EPP usw.)! Sogar die Steuerung der 3 Extra-Leitungen bei Direkter E/A ist möglich. Deshalb ist der Dialog etwas überfrachtet.

Auch zum Beobachten der Programmfunktion geeignet. Gemeint ist das Programm, für welches Sie USB2LPT überhaupt einsetzen.

Hinweis:	Benutzen Sie die Kontexthilfe-Funktion, oder drücken F1 bei fokussiertem Dialogelement!


Datenport-Lesebyte: Gelesenes Byte, hexadezimal, des Datenports, im Normalfall permanent aktualisiert.


Datenport-Lesen: Liest das Datenport, also Lesezyklus auf Basisadresse+0.

Dieser Knopf erscheint nur in den ECR-Modi ECP und Test (Datenport durch FIFO verdeckt). In allen anderen Fällen liest der Monitor den Zustand des Datenports permanent.


Datenport-Bits: Anzeige und Setzen einzelner Bits des Datenports.

Farben:	Bit = 0

Bit = 1

geschrieben 0, gelesen 1 (nur bei Direkter E/A)

geschrieben 1, gelesen 0 (nur bei Direkter E/A)

Beim Überfahren mit der Maus Anzeige des Signal-Namens.

• Nicht mit der Tastatur steuerbar.


Datenport-Schreibbyte: Zu schreibendes Byte (also alle 8 Bit auf einmal) als Hexadezimalzahl oder als Zeichen mit voran gestelltem „-“ (Minus). Der Schreibvorgang erfolgt automatisch 0,5 Sekunden nach der Eingabe. Pieps und Markierung des Textes bei Falscheingabe.


Pegelanzeige an SubD-Buchse: Anzeige und Setzen der Pegel.

Füllfarbe:	·	Low-Pegel

•	High-Pegel

•	Pegel unbekannt (bspw. Datenport bei ECP), der USB2LPT-Firmware fehlt dafür eine Hintertür!

Randfarbe:	·	Datenpin (zumeist Ausgang)

•	Statuspin (normalerweise Eingang)

•	Steuerpin (normalerweise Ausgang)

•	Masse-Anschluss

Beim Überfahren mit der Maus Anzeige des Signal-Namens und Bedeutung im gerade ausgewählten ECR-Modus. Die angegeben Invertierungen beziehen sich auf den Pegel.

• Nicht mit der Tastatur steuerbar.


Statusport-Lesebyte: Gelesenes Byte, hexadezimal, des Statusports, permanent aktualisiert.


Statusport-Bits: Anzeige (und Setzen) einzelner Bits des Statusports.

Farben:	Bit = 0

Bit = 1

geschrieben 0, gelesen 1 (nur bei Direkter E/A)

geschrieben 1, gelesen 0 (nur bei Direkter E/A)

Bit nicht implementiert, 0

Bit nicht implementiert, 1

Beim Überfahren mit der Maus Anzeige des Signal-Namens und Bedeutung im gerade ausgewählten ECR-Modus. Die angegeben Invertierungen beziehen sich auf die Bits.

Hinweis:	Das Setzen von Bits ist nur wirksam, wenn am Richtungsregister (unten) auf Ausgabe gestellt wurde.

• Nicht mit der Tastatur steuerbar.


Statusport-Schreibbyte: Zu schreibendes Byte (also alle 8 Bit auf einmal) als Hexadezimalzahl. Der Schreibvorgang erfolgt automatisch 0,5 Sekunden nach der Eingabe. Pieps und Markierung des Textes bei Falscheingabe. Im Normalfall ohne Wirkung, weil Eingabeport!


Steuersport-Lesebyte: Gelesenes Byte, hexadezimal, des Steuerports, permanent aktualisiert.


Steuerport-Bits: Anzeige und Setzen einzelner Bits des Steuerports.

Farben:	Bit = 0

Bit = 1

geschrieben 0, gelesen 1 (nur bei Direkter E/A)

geschrieben 1, gelesen 0 (nur bei Direkter E/A)

Bit nicht implementiert, 0

Bit nicht implementiert, 1

Beim Überfahren mit der Maus Anzeige des Signal-Namens und Bedeutung im gerade ausgewählten ECR-Modus. Die angegeben Invertierungen beziehen sich auf die Bits.

• Nicht mit der Tastatur steuerbar.


Steuerport-Schreibbyte: Zu schreibendes Byte (also alle 8 Bit auf einmal) als Hexadezimalzahl. Der Schreibvorgang erfolgt automatisch 0,5 Sekunden nach der Eingabe. Pieps und Markierung des Textes bei Falscheingabe.


FIFO-Lesebyte: Gelesenes Byte, hexadezimal, aus der FIFO (Portadresse je nach Modus).


FIFO lesen: Auslösen eines FIFO-Lesezyklus', Portadresse je nach Modus. Es zeigt sich das gelesene Byte links daneben sowie Veränderung bei den Statusanzeigen FIFO voll und FIFO leer.


FIFO-Adressierung: Legt die Art des Zyklusses fest, der beim FIFO lesen oder schreiben ausgeführt wird


(FIFO) schreiben: Auslösen eines (FIFO-)Schreibzyklus' mit dem Byte rechts daneben, Portadresse je nach Modus. Ggf. zeigt sich eine Veränderung bei den Statusanzeigen FIFO voll und FIFO leer. Das Ausgabebyte wird für den nächsten Zyklus um 1 erhöht.

In den FIFO-losen Modi wird ein drucker-gerechtes Strobe-Signal erzeugt. Damit kann man also leicht drucker-kompatible Hardware steuern.


(FIFO-)Ausgabebyte: Zu schreibendes Byte, hexadezimal oder als Zeichen mit voran gestelltem „-“. Der (FIFO-)Schreibzyklus erfolgt automatisch 0,5 Sekunden nach der Eingabe (wie mit dem Knopf links daneben). Pieps und Markierung des Textes bei Falscheingabe.

In den FIFO-losen Modi wird ein drucker-gerechtes Strobe-Signal erzeugt. Damit kann man also leicht drucker-kompatible Hardware steuern.


ECR-Lesebyte: Gelesenes Byte vom Extended Control Register, hexadezimal, permanent aktualisiert.


ECR-Modusauswahl: Anzeige und Auswahl des Parallelport-Modus' (Bits 7-5 des ECR). Alle 8 Modi stehen zur Verfügung, und das Aussehen des Monitor-Dialogs hängt wesentlich davon ab.


FIFO-Statusbits: Anzeige der beiden FIFO-Füllstandsanzeigen (Bit 1 und 0) des ECR.


ECR schreiben: Zu schreibendes Byte (alle 8 Bits auf einmal), hexadezimal. Die Ausgabe erfolgt automatisch 0,5 Sekunden nach der Eingabe. Pieps und Markierung des Textes bei Falscheingabe.


Richtungsbits: Anzeige und Setzen einzelner Richtungsbits des USB2LPT.

Farben:	Portpin = Eingabe (0)

Portpin = Ausgabe (1)

Bit nicht implementiert (0 oder 1)

Beim Überfahren mit der Maus Anzeige des Signal-Namens.

Die drei unteren Bits des Statusports sind steuerbar im „direkten Modus“ des USB2LPT mit 20 statt 17 Ein/Ausgabeleitungen, sonst lesen diese 1 als emulierte Massekontakte.

• Nicht mit der Tastatur steuerbar.


Firmware-Update: Fortsetzen?

Letzte Chance, einen möglicherweise zerstörerischen EEPROM-Schreibvorgang abzuwenden!

Empfehlung:	Die zu schreibende Firmware sollte neuer sein als jene auf dem USB2LPT-Gerät.

Wie bei jedem Firmware-Update kann etwas schief gehen, etwa wenn mittendrin der Strom ausfällt. Bricht der Vorgang ab, dann wird das USB2LPT als Cypress CY7C68013-Chip erkannt (Die Mikrocontrollerbezeichnung ist wirklich so elend lang.). Hier hilft Cypress-Software weiter; eine Anleitung unter Verwendung eines alten Treibers befindet sich auf der USB2LPT-Webseite.

Stürzt die erfolgreich gebrannte Firmware ab, muss das Gerät geöffnet und die Lötbrücke SJ2 durchgekratzt werden, um den EEPROM vom Mikrocontroller abzutrennen. Nach Stromzufuhr und Brücken des Kontakts kann das Hilfsprogramm LöscheFirmware.exe verwendet werden, um nach dem Verlöten von SJ2 wie oben angegeben bei Stromausfall weiterzumachen.

Auf keinen Fall können Sie hiermit einen Briefbeschwerer produzieren. (Scherzhafte Bezeichnung für unrettbar tote Hardware.)

Diese Meldung erscheint nur bei detektiertem Full- oder High-Speed-USB2LPT.


High-Pegel?

Wenn diese Meldung erscheint, ist der eigentliche Kurzschlusstest bereits bestanden.

An dieser Stelle sollte mit einem LPT-Tester oder notfalls mit dem Multimeter oder Logikprüfstift HIGH-Pegel an allen 17 aktiven Anschlüssen der SubD-Buchse des USB2LPT nachgewiesen werden.

Dies prüft die korrekte Lötverbindung zwischen Leiterplatte und SubD-Pins (fehleranfällig, da von Anfängern falsch gelötet, oder schlichtweg vergessen).

Eine andere Möglichkeit der Prüfung dieser Kontakte existiert zurzeit nicht.

Empfehlung:	Wenn Sie das nicht prüfen wollen, drücken Sie auf „Ja“.


Firmware-Update: Flag setzen?

Letzte Chance, einen entscheidenden EEPROM-Schreibvorgang abzubrechen!

Bei den Low-Speed-USB2LPT mit ATmega8-Mikrocontroller ist ein Firmware-Update aus dem Geräte-Manager nicht möglich, weil dies zwischenzeitlich den Flash-Speicher korrumpieren würde (dem ATmega8 fehlt dazu genügend RAM) und die USB-Kommunikation zusammenbräche. Der Bootloader wiederum ist nicht USB2LPT-kompatibel (wäre zu groß, muss in 2 KB passen), sondern ein HID-Gerät, für das Windows keinen Treiber braucht, aber eine spezielle Schreibsoftware namens bootloadHID.exe.

Wird hiermit das Flag (42h an EEPROM-Adresse 0) gesetzt, „weiß“ der Bootloader (der nicht älter als Juli 2009 sein darf), dass er die USB2LPT-Firmware nicht anspringt sondern als HID-Gerät verbleibt.

Ältere Bootloader lassen sich nicht von diesem Flag beeindrucken, sondern fragen beim Start die Verbindung zwischen Pin 1 und Pin 14 der SubD-Buchse ab. (Was beim Anwender zum Problem werden konnte.)

Alte Low-Speed-USB2LPT der Version 1.5 wurden ohne Bootloader ausgeliefert. Entweder kann er nachträglich aufgesetzt werden (sofern ATmega8 bestückt, es wird zur Version 1.6), oder ist sogar unmöglich (ATmega48 bestückt). Für die USB2LPT-Funktionalität wird kein Bootloader benötigt. Ohne Bootloader muss zum Firmware-Update das Gehäuse geöffnet und der Jumper SJ2 verbunden werden (zur Not tut's auch ein darauf gehaltener Schraubendreher).

Neue Firmware muss zur eingesetzten Quarzfrequenz passen! Standardmäßig wurden USB2LPT Low-Speed ohne Quarz ausgeliefert und laufen mit 12,8 MHz.

Diese Meldung erscheint nur bei detektiertem Low-Speed-USB2LPT.