Erstmal vielen Dank für die Informationen und Anregungen! Zwar bin ich noch nicht zu viel Testen gekommen, aber das ist schonmal hilfreich!
TDI:
Werden die Leitungen nicht üblicherweise erst im "eingeschwungenen Zustand" abgefragt, sprich mit Verzögerung und nicht gleich hinter den Flanken?
Hmmnaja, direkt hinter der Flanke sollte man ja nie abfragen, aber um zu wissen, wann die Flanke war, braucht man eine Clock, und die ist dann halt doch wieder flankengetriggert. Zumindest gibt es Fehltrigerungen, wenn das Signal nach der eigentlichen Flanke nochmal kurz absinkt.
Andernfalls müßte man synchron abtasten, aber dafür müßte man dann wieder ziemlichen Aufwand betreiben, inkl. Kernenl-Treiber; Usermode-Zugriffe neigen zu krassen Timingschwankungen.
Bigjim
Aus der Erfahrung mit Druckern weiß ich jedoch, dass lange Kabel und gerade mechanische Umschaler totalen Schrott liefern können. Hast Du das mal mit nem guten kurzen Kabel ohne Umschalter getestet?
Vor längerer Zeit habe ich das in anderem Zusammenhang IIRC mal mit 30cm Kabel direkt am Port probiert, allerdings kann es sein, daß da die Rahmenbedingungen trotzdem anders waren. Ich werde das aber nochmal probieren.
Bigjim
Ich habe vielleicht noch ein Leunig - Kabel. Diese Kabel haben wir früher ohne Probleme bis zu einer Länge von 50m eingesetzt, obwohl die parallele Schnitstelle normalerwese nur bis 3m zertifiziert ist. Hast Du mal ne reine Schnittstellenkarte im Slot versucht? Auf so einem Systemboard geht es doch recht eng zu, da halte ich die Gefahr von Störungen doch für leichter gegeben.
So gute Kabel sind das bei mir bestimmt nicht; das Kabel vom Umschalter zur Schaltung war damals nicht ganz billig, aber das andere stammt aus der Restekiste. Das Problem hatte ich sowohl mit Ports auf Mainboards (4 völlig verschiedene, von PII bis Phenom) als auch mit einer PCI-Addon-Karte; allerdings mag der Scanner diese Karte unter Linux, auch mit kurzem Kabel, nur mit einem Trick, unter Windows geht die aber problemlos (was nicht heißt, daß der Windows-Treiber ohne Trick auskommt...). Die Effekte sind zwar mal stärker und mal schwächer, aber in jedem Fall nicht gering genug, um nicht negativ aufzufallen.
flogerass
Die neueren Parallel-Schnittstellen sind eigentlich vom Ausgang her impedanzangepasst. Mit einem halbwegs brauchbaren Kabel sollten da eigentlich saubere Rechtecke rauskommen. Laut Norm gehört am Empfänger ein 1,2k Pull-Up hin. Der dürfte allerdings keinen so extremen Einfluss auf die Signalform haben. Überschwinger von mehreren Volt dürften eigentlich nicht vorkommen.
So eine Info habe ich gesucht, aber nie gefunden, welche Norm ist das? IEEE1284? Das einzige, was ich gefunden habe, ist, daß die Datenausgänge Totem-Pole und die Steuerausgänge Open Collector sind, und da so 4,7K Pullup drangehören. Ohne die 4,7K wird es noch schlimmer, weil vermutlich dann nur irgendwelche parasitären Widerstände die High-Pegel bestimmen.
Bastelbruder:
Grundsätzlich ist die LPT-Schnittstelle erstmal TTL-Logik, d.h. Low < 0,8V < verbotener Bereich < 2.0V < high.
Das macht ja auch den Großteil ihres Charmes aus.
Das und natürlich ihre parallele Natur sowie die Direktheit der Ansteuerung.
Bastelbruder:
Am Anfang wird sie meist wieder reflektiert. Bei den 5 Metern Leitung (ca. 20cm/ns) kommt derselbe Impuls also nach etwa 50ns nochmal an. Und wenn irgendeine Konstruktionsbestie im gut gemeinten EMV-Glauben so genannte Entstördrosseln* in die Leitungen eingefügt hat, dauert das noch etwas länger.
Hmm, was erklärt das jetzt, die Überschwinger oder das kurzzeitige Absinken? IIRC dreht sich bei einer Reflexion am kurzgeschlossenen Ende der Pegel um, aber der Überschwinger kommt vor dem Absinken, und kurzgschlossen ist es ja nicht... dann bliebe allenfalls der Überschwinger als Reflexion am offenen Ende übrig, und das Absinken wäre ggfs. dann die Reflexion am Senderende, aber dann müßte sie ja deutlich geringer sein als der Überschwinger...
Bastelbruder:
Unser Druckerkabel mit einem Wellenwiderstand um 100 Ohm ist bei echtem TTL am Anfang abhängig vom Pegel mit abwechselnd etwa 20 Ohm (low) oder 200 Ohm (high) abgeschlossen und am Ende mit über 1 Kiloohm, bei CMOS vorn mit 50 Ohm und hinten mit unendlich. Und die einzelnen Signalleitungen sind womöglich nicht einmal gegeneinander abgeschirmt...
Seltsam, ich habe noch nie ein Druckerkabel mit Einzelabschirmung gesehen, allenfalls mal einen Gesamtschild, und da das Kabel recht biegsam und dünn ist, wird es wohl auch nicht geschirmt sein. :\
Bastelbruder:
Das bedeutet:
Auf der Senderseite sind OC-Ausgänge mit Pullup absolut no-go! Ein HCMOS-Ausgang mit 50..68 Ohm in Serie ist das Optimum.Hmm, aber ist die Druckerschittstelle nicht genau so "genormt", daß die Datenleitungen Totem-Pole sind, die Steuerleitungen jedoch OC, wahlweise mit oder sogar ohne Pullup, so daß man auf der Empfängerseite sicherheitshalber einen vorsehen muß?
Bastelbruder:
Die Empfängerseite braucht ein Spagat aus optimalem Leitungsabschluß von 100..120 Ohm - dabei sinkt (in Kombination mit den Widerständen auf der Senderseite) der Signalpegel auf die Hälfte - bei gleichzeitiger Einhaltung der
Eckwerte um den eingangs beschriebenen toten Bereich.
Ein Widerstand 100 Ohm in Reihe mit 500pF gegen "Masse" sollte für die 5m-Leitung das Optimum darstellen.Also ein Tiefpaß? Auf welche Seite der 100Ohm setze ich dann den Pullup? Ich würde mal sagen, auf die Eingangsseite, da sonst vom Low-Pegel weniger ankommt?
Bastelbruder:
Im LPT-Kabel müssen alle Datenleitungen einzeln geschirmt sein. Ein legales 20m-LPT-Kabel ist damit entweder ein fingerdicker Prügel oder ein mindestens 26poliges Flachkabel mit Masse beidseitig aller Datenleitungen.Echt? IIRC steht bei Wikipedia "Twisted Pair"?
Bastelbruder:
In Serie zu CMOS-Eingängen (direkt am Chip) an solch langen Leitungen kann ich noch Widerstände mit mindestens 1k empfehlen, das verhindert unerwünschte Rückwirkungen der Schutzdioden bei Überschwingern und ist allgemein lebensdauerverlängernd.
Hmm, also hinter dem Tiefpaß noch 1K, gut zu wissen. Würde der bei TTL aufgrund des geringeren Eingangswiderstandes stören, oder könnte man das als Universal-Adapter benutzen?