Forum: PC Hard- und Software kleines LPT-Karten problem


von Paul W. (Gast)


Lesenswert?

Hallo,
Ich habe ein kleines Problem mit meiner LPT-Karte.
Der LPT-Port hat ja mehrere Ausgänge und Eingänge, die sich alle separat 
schalten lassen. Ich will mit einem Ausgang über einen Optokoppler ein 
Relais schalten. Ich bin davon ausgegangen, dass der Strom vom LPT-Port 
ausreicht, um den Optokoppler zu schalten, der dann wiederrum das Relais 
schaltet (Wieso ich nicht über einen Treiber wie den ULN gegangen bin? 
Das wüsste ich auch gerne, aber die Platine ist jetzt eben fertig.).
Benutze ich Pin 2 (oder einen anderen beliebigen Pin des Datenports) 
funktioniert das auch gut, nur eben nicht mehr, wenn ich Pin 17 des 
Kontrollports nehme (oder einen beliebigen anderen Pin des 
Kontrollports). Hat jemand eine Idee was hier faul ist? Ich messe beim 
schalten von Pin 17 eine Spannung von 5V, also die ist auch vorhanden, 
aber anscheinend reicht der Strom nicht aus? Dann habe ich einen kleinen 
Versuch gestartet: Eine einfache LED soll geschaltet werden. Ergebnis: 
Sie leuchtet, aber gaaaaaanz schwach. Ist meine LPT-Karte nicht zu 
gebrauchen? Wer kann eine empfehlen?

Danke fürs durchlesen und antworten :-)

Paul

von Christian R. (supachris)


Lesenswert?

Das ist normal. Der Drucker-Port liefert lediglich CMOS Pegel und ist 
sehr hochohmig. Reicht kaum für eine LED. Da hilft auch eine andere LPT 
Karte nix. Du musst erst mal verstärken, eine externe Spannung brauchst 
du sowieso. ULN2803 oder ähnliches reicht meistens aus als 
Relais-Treiber.

von Paul W. (Gast)


Lesenswert?

Wie kann ich das Signal denn verstärken (ULN 2803?)? Es kann sein, dass 
diese Verstärkung auch schnell sein muss (da schnell relativ ist: damit 
sollte ein 1kHz PWM-Signal geschaltet werden können, das geht dann 
allerdings nicht über Relais...), ich finde aber nichts über 
Schaltgeschwindigkeit im ULN 2803 Datenblatt?!

Wenn ich den Parallelport vom Mainboard benutze, funktioniert es 
übrigens so wie ich es eigentlich gedacht hatte. Also da funktionieren 
die Kontrollports auch so wie es sein sollte... (ich gehe jetzt einfach 
mal davon aus, dass es so sein sollte ^^)

von Michael S. (fandjango)


Lesenswert?

Das erklärt doch nicht, warum es bei den Daten-Leitungen "besser" geht 
als bei den Steuerleitungen.

Habe mal recherchiert:

The Centronics interface is an 8-bit [parallel] unidirectional bus. The 
Parallel port [Centronics] interface cable used a 36-pin connector on 
the Printer side, and a 25-pin D-Sub connector on the Host [PC] side. 
The D-Sub connector pinout used on the computer is listed on the PC 
Parallel Port page. There is no defined standard for the Centronics 
interface, timing varied between printers from different manufacturers, 
as drivers, receivers and termination differed. The maximum possible 
transfer rate is 150kbps, but typical values were 10kbps. The electrical 
interface used TTL logic levels. The data lines used 74LS374 ICs, while 
the control lines used 7405 ICs. Resistor pull-ups for the open 
collector lines were 4.7k ohm to +5 volts, but could be any value 
because there was no specification.

Also früher waren beim alten standard Par-Port die Datenleitungen 
kräftige 74LS374er und aus unerfindlichen Gründen (vielleicht sollte mal 
ein BUS gamecht werden mit mehreren Sendern) waren die CTL Output 
Leitungen Pull-Downs mit 7405 Open Collector.

Daraus ergibt sich die Frage: Optokoppler wie angeschlossen. An den CTL 
Ports könntest Du von +5V runter ziehen, nicht aber den Opto gegen Masse 
"versorgen". Die Daten-Leitungen haben eine Totem-Pole und können auch 
"Strom bei 5V liefern".

Also: Wie angeschlossen?

von Michael S. (fandjango)


Lesenswert?

Vielleicht sollte man noch hinzufügen das LPT Ports inzwischen 
hochintegriert irgendwo in einem Chip drinnen mit dabei sind und somit 
nicht unbedingt mehr sich so verhalten wie früher, als das alles diskret 
aufgebaut war.

Deswegen hat Christian R. recht wenn er sagt das die sicherste Annahme, 
die ist, dass die Ausgänge hochohmig sind. Dann gehts auf jeden Fall 
eher als umgekehrt...

von Paul W. (Gast)


Angehängte Dateien:

Lesenswert?

Der Anschluss ist wie im Anhang... der einzige Unterschied ist, dass der 
Widerstand da eigentlich ein Netzwerkwiderstand ist. Sonst identisch...

Wie sieht denn so eine Verstärkung aus? Kann man den ULN-Treiberbaustein 
dafür benutzen? Für welche Geschwindigkeiten ist der geeignet?

von Michael S. (fandjango)


Lesenswert?

Am CTL Port würde ich eher mit Opto-Pull Down von +5V arbeiten, aber die 
+5V hast Du ja nicht am Centronics Port.

Du willst ja lieber Signal->R->>OPTO>>->GND auswerten.

Besser wäre +5v----> Opto --R---> Signal

Den Wiederstand nicht vergessen. Ist schon ok mit 200-300 Ohm oder so in 
der Gegend. Genau ausrechnen!

Das Problem ist, dass viele allgemeine frühere Schnittstellen eher so 
gebaut sind, das sie "Current Drainen" also ein High auf Low ziehen 
können, als das sie ihren eigenen kostbaren Strom nach aussen geben. Die 
Datenleitungen, immer vorrausgesetzt sie sind so wie früher, können aber 
beides: Hochziehen und Runterziehen, und auch Tri-State wenn mein 
Gedächtnis sich nicht täuscht. Dein PC hat da am Mainboard vielleicht 
auch was abweichendes und schon geht's. Anderes Problem: Für solche 
Anwendungen muss man auch wissen ob die LPT Schnittstelle als Normal, 
EPP oder ECP konfiguriert, dass kam später noch erschwerden hinzu. Das 
solltest Du dann aber selber recherchieren.

Wenn Du also unbedingt +5V brauchen solltest, die am Centronics Stecker 
nicht vorhanden sind, kannst Du ja auch gleich Verstärken mit einem 
ULN.... oder was auch immer. Sowas wie es auch früher im Drucker auf der 
Gegenseite eingebaut war, evtl. mit einem ordentlichen Pull Up auch 
noch, sofern du weiter mit einer CTL Leitung arbeiten willst.

Alles nur meine Meinung, aber Du bist ja schon recht weit. Du findest 
eine Lösung. Statt einem ULN, evtl. ein einziger Transistor 2N3904 und 
eine +5V Quelle?

von Paul W. (Gast)


Angehängte Dateien:

Lesenswert?

Die 5V sind nicht das Problem, die sind auf der Platine, auf der die 
Optokoppler sind, vorhanden.
Also schlägst du eher so eine Schaltung wie im Anhang vor?
Das doofe ist... die Platine ist schon fertig gelötet und bestückt... 
Materialkosten liegen bei knapp 80-100€, was das ganze natürlich echt 
ärgerlich macht, wenn ich sie nicht benutzen kann...
Ein einzelner Transistor kommt eher nicht in Frage, weil das zu viel 
Platz braucht (6 Transistoren + Freilaufdioden <--> ein ULN 2803)...

Diese Einstellung mit SPP/EPP/ECP kam mir auch schon in den Sinn, aber 
bei der Karte habe ich bisher keine Einstellungsmöglichkeit gefunden...

Ich hätte noch eine physikalische Frage...
Die technische Stromrichtung ist zwar von + nach -, aber die 
physikalische von minus nach plus, in diesem Fall von Masse nach +5V. Es 
wäre doch eher logisch, dass genau diese Richtung nicht funktioniert? 
Ich beziehe das jetzt auf den Satz "Das Problem ist, dass viele 
allgemeine frühere Schnittstellen eher so
gebaut sind, das sie "Current Drainen" also ein High auf Low ziehen
können, als das sie ihren eigenen kostbaren Strom nach aussen geben."

Der Strom wird doch genau dann vom PC kommen, wenn ich mit dem Pin den 
Optokoppler wie im Anhang auf Masse ziehe?
Ich hab da ein allgemeines Verständnisproblem, wenn es um sowas wie VCC, 
VDD, VSS, VEE, GND, GROUND und was weiß ich nicht alles geht ^^... man 
findet irgendwie wenige Seiten (ich habe keine gefunden, wo ich das 
verstanden habe), wo das gut beschrieben ist.

Danke für eure Hilfe bis hier hin :-)!

von Michael S. (fandjango)


Lesenswert?

Deine Zeichnung ist gut so. Ich habe also trotz aller sprachlichen 
Ungenauigkeiten rübergebracht was ich meinte.

Gemeint ist durchweg technische Stromrichtung. Plus will Stom nach Minus 
schicken. Der Treiber im Centronics Port schaltet gegen Masse (-) besser 
als gegen (+).

Der Vorteil ist: Du könntest auch aus 24V kommen, sofern der 
Port-Treiber das kann und der Strom innerhalb des erlaubten bleibt.

Bei einem Schalter nach (+) ist (meistens) die Spannung gegen die er 
Schaltet fest verdrahtet im Portbaustein (5V, selten mehr).

Ich dachte Du willst nur ein einzige Leitung anzapfen? Pro Leitung 
brauchst Du einen 2N3904 als "Verstärker". Basis an das Signal mittels 
kleinem R (ca. 1kOhm oder weniger). Emitter an Masse. Kollektor zieht 
OptoKoppler von +V gegen Masse (über 220 Ohm, nicht vergessen).

Bei acht Leitungen und mehr? ULN...

Vielleicht machst Du einen Adapter für den/die Sockel des Optokopplers 
und setzt was "schlaueres" drauf?

von Paul W. (Gast)


Lesenswert?

Ich habe nur eine Leitung hier als Beispiel verwendet ja, aber am Ende 
sollen es mehr sein...
Letztendlich werden 2 LPT-Ports benutzt. Da der Datenport gut 
funktioniert und der Statusport auch keine Probleme aufweist, bleiben 
nur noch die 4*2 Pins vom Steuerport, die nicht funktionieren. Das sind 
genau 8 Pins, die nicht funktionieren. Damit werden 6 Relais gesteuert 
und ein PWM-Signal (für eine Frässpindel), bestehend aus der Richtung 
und dem eigentlichen PWM-Signal.
Zur Zeit überlege ich, ob ich es nicht doch anders machen will. Aber da 
überlege ich erstmal noch weiter...

Kann ich davon ausgehen, dass so eine Darlington-Schaltung, wie sie beim 
ULN verwendet wird, schnell genug ist für (ich schätze jetzt mal) ein 
100 kHz Signal?

von Schneemann (Gast)


Lesenswert?

Guck mal hier, da ist auch ein Schaltplan dabei (Schematic)
http://www.sunrom.com/index.php?main_page=product_info&cPath=49&products_id=513

von Paul W. (Gast)


Lesenswert?

Nein, das ist nicht das was ich will :-).
Das Interface was ich baue, ist für den Betrieb mit Servos gedacht, 
nicht für Schrittmotoren. Die Technik dahin ist jetzt etwas zu lang zu 
erklären und hat hier nicht viel verloren, da es mir hier primär um den 
LPT-Port geht :-). Trotzdem danke ich dir für deinen Hinweis :-).

Außerdem werden die Optokoppler auf dieser Platine genauso angesteuert 
wie ich es habe, also würde es auch nicht funktionieren, sobald der 
LPT-Steuerport nicht genug Strom liefert / es sich um CMOS-Ausgänge 
handelt / ich nicht gerade den LPT-Gott anbete ;-).

von Schneemann (Gast)


Lesenswert?

Ok, aber mir ging es nicht direkt um die Schaltung, sondern um den 
Optokoppler-Typ 6N137, der hat laut Datenblatt: "Low Input Current 
Required: 5mA Maximal". Ich weiss ja nicht, welche Du verbaut hast. Eine 
normale rote LED benötigt ja so ca. 20mA. Bei mir funzt die nachgebaute 
Schaltung nämlich.

von Paul W. (Gast)


Lesenswert?

Hmm... vielleicht habe ich ein anderes Datenblatt, oder ich lese an der 
falschen Stelle ^^:
Input Current, Low Level : 0 250 μA
Input Current, High Level : *6.3 15 mA

* 6.3 mA is a guard banded value which allows for at least 20 % CTR 
degradation. Initial input current threshold value is 5.0 mA or less

Ich benutze den HCPL 2630, also quasi den selben nur 2-fach...

Die Schaltung funktioniert bei mir ja auch, wenn ich den LPT-Port vom 
Mainboard nehme, nur eben nicht mehr, wenn ich den Port von der 
PCI-Karte nehme (überlesen?).

von Schneemann (Gast)


Lesenswert?

1. Bezug: Datenblatt von Texas Instruments
2. LPT: NetMos PCI ECP Parallel Port Karte (Meldung im Geräte-Manager)

Ich habe mal geschaut, Fairchild z.B gibt als IFH=15mA für den Emitter 
(LED) an. Ist scheinbar nicht egal, von welchem Hersteller der OK kommt. 
Meine sind von TI.

von Paul W. (Gast)


Lesenswert?

Wie ich heute herausgefunden habe, handelt es sich bei den Ausgängen 
meiner LPT-Karte tatsächlich um Open-Collector ausgänge. Ich werde dann 
wohl auch ohne eine Verstärkung auskommen, muss dann aber die Schaltung 
so umbauen, dass der Optokoppler bei einem Ausgang von 0V am Pin 
"schaltet". Also so wie in meiner zweiten geposteten Schaltung.
Falls jemand das selbe Problem hat: Die Information über den 
Open-Collector-Ausgang habe ich (abgesehen von dem Hinweis hier) von 
einer CNC-Seite, um genau zu sein aus dem deutschsprachigen Teil des 
Mach3-Forums. Es ist eine Karte mit dem MCS9815 Chipsatz von Moschip.

von Michael S. (fandjango)


Lesenswert?

Na, freut mich zu hören daß der Fall wenigstens erklärbar ist. Open 
Collector am LPT - da hat sich jemand total an den alten Standard 
gehalten...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.