USB zu parallel

Hallo Ihr,

ich schreibe wegen des leidigen Themas: „USB zu parallel“. Seit einiger Zeit versuche ich schon dieses Problem in den Griff zu bekommen, aber ohne Erfolg.

Ich besitze einen USB zu parallel Adapter (Prolific ps2305 chip), den ich aber nicht zum funktionieren bekomme. Ich möchte ganz einfach ein Byte schicken, dass dann am Gerät, dass über die Gegenstelle des parallelen Anschlusses verfügt, ankommt.

Pseudocode:

Öffne Device();
Sende bytes über Device();
Nehme Antwort von Device entgegen();
Schließe Device();

Eigentlich super einfach…

Um dies zu testen habe ich einen Oszilloskop an das ende angeschlossen, mit dem ich die einzelnen Pins abgfragen kann, aber es kommt einfach nix an, was ich über den USB Adapter sende :frowning:.
Egal ob über die libusb Bibliothek

oder über einen universal USB Treiber, der im ersten Moment vielversprechend klingt

Jetzt kommt ihr ins Spiel :smile:

Ist er überhaupt möglich ein „Nicht-Drucker-Gerät“ über einen gewöhnlichen „USB zu Parallel“ adapter zu betreiben?
Nach folgender Quellen geht es nicht:

Aber ich finde keine Begründung WARUM es nicht funktionieren soll…??

Hat einer von euch schon Erfahrungen damit gemacht?
Kann mir jemand eine Alternative nennen, mit der dieses Vorhaben glücken kann?

Ich habe bereits eine Alternative gefunden:

Diese ist mir jedoch unlieb, weil ich das ding selber bauen muss. Ein kommerzielles, fertiges Produkt wäre mir lieber.

Die Quintessenz dieses Artikels ist eigentlich die Frage:

Wie bekomme ich es hin, dass ich über einen USB zu parallel Adapter jeden Pin des parallel Ports einzeln ansprechen kann und eine Antwort engegennehme? Also USB rein, 25-polig-Parallel raus, 25-polig-Parallel rein, USB raus…???

Viele Grüße,
Ai

Hallo,

ich schreibe wegen des leidigen Themas: „USB zu parallel“.
Seit einiger Zeit versuche ich schon dieses Problem in den
Griff zu bekommen, aber ohne Erfolg.
Ich besitze einen USB zu parallel Adapter (Prolific ps2305
chip), den ich aber nicht zum funktionieren bekomme. Ich
möchte ganz einfach ein Byte schicken, dass dann am Gerät,
dass über die Gegenstelle des parallelen Anschlusses verfügt, ankommt.
Wie bekomme ich es hin, dass ich über einen USB zu parallel
Adapter jeden Pin des parallel Ports einzeln ansprechen kann
und eine Antwort engegennehme? Also USB rein, 25-polig-Parallel raus,
25-polig-Parallel rein, USB raus…???

Also 25-pol.-parallel ist ja eigentlich eine Druckerschnittstelle
mit 8 Datenbits vom PC weg und paar Steuerbits.

Als alternativen Lösungsansatz würde ich dir vorschlagen, einen kleinen
Controller zu nehmen und diesen über USB oder RS232 anzuschließen.

Dann sollte es kein Problem sein, z.B. ein Controllerport mit 8 Bit
aus Ausgabe zu schalten und einen 2.Port mit 8 Bit als Eingabeport zu nutzen.
Geht z.B. mit C-Control M-Unit oder C-Control Atmega32 oder auch mit der
größeren C-Control Atmega128. Da hast du alle Freiheiten und kannst recht
leicht selber bestimmen, was wie hin und her geht.
Da wären auch bidirektionale Ports leicht machbar.

Gruß Uwi

Hallo,

Dein Oszi ist doch viel zu langsam, um den Impuls darzustellen. Für Einsätze dieser Art gibt es eine Reihe von optimierten Programmiersprachen.

Wenn du mir etwas genauer schilderst, was denn dort über die parallele Schnittstelle kommuniziert werden soll, kann ich dir vielleicht weiterhelfen.

mfg, tf

Hallo Thomas,

vielen Dank für deine Antwort!!!

Also, dass mein Oszi (YOKOGAWA DL750 ScopeCorder) zu langsam ist kann ich bisher noch nicht bestätigen.

Ich habe ein Programm, dass eine Ausgabe auf den parallel Port produziert. Wenn ich mit diesem Programm eine (binär)00000001 auf den Port gebe, dann kommt auf der anderen Seite auch eine (binär)00000001 raus und das Oszi schlägt auch auf D0 (Datenbit null) aus.

Ich möchte einfach nur eine Binärzahl über die Datenbits des parallel Ports ausgeben. Aber mit USB Schnittstelle am PC.

Parallel ====== USB ====== PC

Eine andere Architektur kommt nicht in Frage, da sind mir leider die Hände gebunden. Es geht um die Auswechslung der PC Schnittstelle, aber die Gegenstelle (ein proprietärer Multiplexer) bleibt gleich. Dieser verfügt nur über einen 25 poligen Anschluss (parallel).

Gruß,
Ai

Hi Uwi,

auch dir danke ich für die interessante Antwort.

Ich habe mich mal ein wenig belesen und mir fällt auf, dass die C-Control zwar über einen USB Anschluss verfügt, dieser jedoch NUR zum Programmieren des Microcontrollers angebracht ist.
Die restlichen I/O Operationen müsste ich eigenständig über eine Pinverdrahtung des USB Ausgangs am PC realisieren und demensprechend das USB Protokoll nachprogrammieren.

Scheint mir doch sehr viel Aufwand…, den ich evtl. auf mich nehmen muss, aber nicht möchte.

Vielleicht habe ich aber auch nicht richtig gelesen, bzw. kannst du mein Unwissen ein wenig entfernen?

Gruß,
Ai

Hallo,

Ich habe mich mal ein wenig belesen und mir fällt auf, dass
die C-Control zwar über einen USB Anschluss verfügt, dieser
jedoch NUR zum Programmieren des Microcontrollers angebracht ist.

Kann ich jetzt nicht genau sagen.
Auf alle Fälle hatte die M-Unit eine serielle Schnittstelle RS232,
auf die man auch während der Laufzeit Daten zwischen PC und
C-Control austauschen kann.
Ein Umsetzer von USB auf RS232 sollte auch das Problem mit der Umsetzung
leicht lösen. Sowas gibt es für ca. 8€ z.B. bei Reichelt oder auch Conrad.
Diese Umsetzer werden aber im PC als virtuelles COM-Port angelegt, so
du diese bequem aus jedem Programm per UART korrespondieren kannst.

Der USB-Umsetzer, welchen es für das C-Control gibt, ist auch nix anderes.
Da wird üblicherweise immer der gleiche Chip verwendet z.B. von FTDI.

Die restlichen I/O Operationen müsste ich eigenständig über
eine Pinverdrahtung des USB Ausgangs am PC realisieren und
demensprechend das USB Protokoll nachprogrammieren.

Nö, geht normal über COM-Port. Dafür sollte aber in jeder Programmiersprache
eine passende Komponente/Treiber vorliegen.
Im Prinzip geht die Komunikation auch ganz normal per Terminalprogramm.

Scheint mir doch sehr viel Aufwand…, den ich evtl. auf mich
nehmen muss, aber nicht möchte.

Welchen Aufwand du machen willst, ist deine Sache. Wenn du mit Hardware
wenig am Hut hast, wirst du natürlich nicht so gerne basteln wollen.
Ist aber evtl. doch die einfachere Lösung. Vor allem hast du da viel
mehr Möglichkeiten.
Gruß Uwi