Entwickler-Ecke

Basistechnologien - USB zu Parallel: Wie kann ich einzelne Pins ansteuern?


C# - Mi 05.10.11 16:42
Titel: USB zu Parallel: Wie kann ich einzelne Pins ansteuern?
Hallo @ll

Ich möchte selbst gebastelte Hardware an den PC hängen. Es handelt sich hierbei um eine umgebaute Fernsteuerung von einem Spielzeug. Da die Fernsteuerung keine Kommunikationsmöglichkeit bietet dachte ich, einfach mit einem USB -> Seriell (25 oder 9 pin - egal) Adapter über den USB-Port die einzelnen Pins der Seriellen Schnittstelle anzusteuern.
Geht so etwas mit C#?

Moderiert von user profile iconTh69: Titel geändert.


C# - Do 06.10.11 19:36

Hat wirklich keiner eine Lösung oder einen Ansatz???


daeve - Do 06.10.11 21:54

Also ich bin mir nicht 100% sicher, aber sowie ich das noch im Kopf habe wäre da C++ besser dafür geeignet.
Ob es mit C# geht kann ich dir auch nicht sagen.


pdelvo - Do 06.10.11 22:15

Um Pins einzeld zu steuern brauchst du doch einen parallelen Anschluss(?)

und da ist es ganz einfach die Pins an und aus zu schallten.

http://www.codeproject.com/KB/cs/csppleds.aspx

seriell ist für sowas doch nicht gedacht. die kannst du mit der Klasse SerialPort ansteuern und daten drübersenden


C# - Fr 07.10.11 16:12

Ok. Mein Fehler. Ich meinte natürlich Parallel xD. Da mein laptop natürlich keinen parallelen anschluss besitzt müsste dass doch auch mit einem USB -> Parallel Adapter klappen oder?

Und natürlich Danke


Ralf Jansen - Fr 07.10.11 16:43

Wenn der Treiber zum Adapter den parallelen Port richtig emuliert, was er sollte sonst wäre der Adapter für nichts zu gebrauchen auch nicht zum Anschließen eines entsprechenden Druckers, ja.


Th69 - Fr 07.10.11 16:53

Für den Parallelport benötigt man dann die "inpout32.dll": http://logix4u.net (auch die 64-bit Version gibt es dort)
Tutorial dazu: http://www.thaiio.com/prog-cgi/CshapeParallelPort.htm
Was damit noch möglich ist, zeigt z.B. http://www.codeproject.com/KB/cs/csppleds.aspx

Edit: ups, habe gerade gesehen, daß pdelvo ja schon den letzten Link gepostet hat.

P.S. ich habe mal den Titel angepaßt...


C# - Mo 24.10.11 20:20

Ok. ich bin doch etwas planloser als ich dachte (Hardwarebezogen).
Ich habe jetzt meinen Parallelanschluss + Testsoftware. Müsste alles funktionieren. Der Parallelanschluss wird von WIn7 als Druckerkabel erkannt und Treiber sind auch drauf. Die Software zählt einfach die Adresse von 1 bis 999 durch und gibt je ein signal (Wert: 0 bis 255) dazu.

Hardware:
Parallelport (25pin)
Pin 1 = led1
Pin 2 = led2
...
Pin 6 = led6
Pin 25 = Masse (Minus)
die anderen Pins sind nicht belegt

Ist es egal wo ich beim Parallelport den Minus-Pol hinlege bzw. kann ich den überhaupt gemeinsam verwenden (technisch gesehen geht das ja).
Muss ich Masse noch irgendwie (Softwaretechnisch) definieren oder ähnliches?


C# - Mi 26.10.11 17:10

Ok ich habe mein Hardwareproblem gefunden: ich habe die LED's falsch rum angelöltet xD (peinlich).

Doch jetzt ist ein neues Problem aufgetreten. Ich habe mal mit nem Messgerät die Spannungen der Parallelschnittstelle durchgemessen.
Ich habe permanent Spannung auf den Pins - kann Sie mit INPOUT.dll also nicht kontrollieren, weder auf Port 888 noch 632.

Meine Spannungen bei Pin...
1 = 4,75V
2 = 2,6V
3-13 = 1,3V > 1,15V
14-25 = 0V (Minus!)

Sind diese Werte korrekt? Ich bin nämlich von 5V auf jedem geschalteten Pin ausgegangen (-> USB-Spannung).
Hat jemand eine Idee? Der Treiber ist "C:\Windows\system32\drivers\usbprint.sys" (Name: "USB-Druckerunterstützung").
Liegt es am Treiber oder kann ich mir sonst irgendwie Vollzugriff beschaffen?


Ralf Jansen - Mi 26.10.11 17:30

Sieh dir den Standard an was du wo erwarten kannst.
http://www.fapo.com/1284int.htm