Forum: Mikrocontroller und Digitale Elektronik VB 2008: USB <--> uC


von Daniel (Gast)


Lesenswert?

Hi liebe Bastlerkollegen.
Ich habe folgendes Problem:
Ich möchte Daten zwischen meinem Pc und einem uC austauschen.
Mein Pc hat leider nur USB anschlüsse, also keine Com-Ports.
Ich habe schon eine Weile gesucht und z.B. die IO.dll gefunden, die soll 
aber nicht mit einem USB-Com-Adapter funktionieren.
Die beste Möglichkeit wäre eine Art USB-Interface, welches ich per VB 
2008 ansprechen kann.
Danke für eure Mühe =)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Daniel schrieb:
> Ich habe schon eine Weile gesucht und z.B. die IO.dll gefunden, die soll
> aber nicht mit einem USB-Com-Adapter funktionieren.

Die braucht man dafür auch nicht, selbst dann nicht, wenn man mit einer 
"echten seriellen Schnittstelle kommunizieren will.

von Frank L. (franklink)


Lesenswert?

Schau mal hier rein.
Als erster Einstieg...

http://sourceforge.net/projects/libusbdotnet/

Gruß
Frank

von Carl (Gast)


Lesenswert?

Die meisten USB-COM-Adapter bieten doch PC-seitig einen virtuellen 
COM-Port? Dieser lässt sich in VB über die SerialPort-Klasse ansprechen.

von Daniel (Gast)


Lesenswert?

Wieso gibt es nicht einfach eine dll oder so, die einem erlaubt die 
einzelnen Anschlüsse im USB anzusprechen?
Nach dem Motto: setze Leitung 1 auf HIGH, lese leitung 2 aus, usw.
Da die meisten uC auch über 5V Signale angesprochen werden, wäre das 
doch sehr passend.

von Daniel (Gast)


Lesenswert?

Carl schrieb:
> Die meisten USB-COM-Adapter bieten doch PC-seitig einen virtuellen
> COM-Port? Dieser lässt sich in VB über die SerialPort-Klasse ansprechen.

Über das Serialport-Element? Ich dachte das würde nicht funktionieren. 
Ich habe ja einen Adapter.

von Carl (Gast)


Lesenswert?

Wenn der Treiber des Adapters einen virtuellen COM-Port anbietet geht 
das (ich programmiere zwar nicht in VB, aber unter C# funktioniert das 
problemlos und das Framework ist ja das gleiche)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Daniel schrieb:
> Wieso gibt es nicht einfach eine dll oder so, die einem erlaubt die
> einzelnen Anschlüsse im USB anzusprechen?
> Nach dem Motto: setze Leitung 1 auf HIGH, lese leitung 2 aus, usw.

Da das vollkommen sinnlos wäre.

von Leonard D. (gaffaman)


Lesenswert?

Hi,

eigentlich bietet jeder USB-COM-Adapter so einen virtuellen Comport an. 
Wenn du den nicht finden kannst poste mal Adapternamen und die Sachen 
die du versucht hast, vielleicht weiß Google da mehr :D

USB = Universal Serial BUS, d.h. ein Bussystem bei dem das 
Betriebssystem / der PC alle LowLevel-Ansprache regelt, es gibt keine 
Möglichkeit einen USB-Port direkt und hardwarenah anzusprechen und wenn 
doch wäre es eine grobe Verletzung dieser Design-Prinzipien.^^

Über USB kann man nur mit den entsprechenden Protokollen reden, 
allerdings gibts es da soweit ich weiß auch welche die man auf einen AVR 
machen kann, dass der selbst quasi den COM-Adapter darstellt, gabs hier 
iwo im Forum mein ich.

LG gaffaman

von Daniel (Gast)


Lesenswert?

Ok, ich habe mir mal die Doku zu der Comport Komponente durchgelesen. 
Dort gibt es Funktionen zum schreiben und lesen von Daten.
Ich bräuchte aber wie erwähnt nur zugriff auf einzelne Leitungen, nach 
dem LED an, LED aus Prinzip.
Gibt es zum Comport ein Tutorial, damit ich ihn verstehe und das 
Umsetzen kann?
LG Daniel

von Arc N. (arc)


Lesenswert?

Daniel schrieb:
> Ok, ich habe mir mal die Doku zu der Comport Komponente durchgelesen.
> Dort gibt es Funktionen zum schreiben und lesen von Daten.
> Ich bräuchte aber wie erwähnt nur zugriff auf einzelne Leitungen, nach
> dem LED an, LED aus Prinzip.

RTS und DTR können auch mit dieser Klasse gesetzt werden (Eigenschaften 
RtsEnable bzw. DtrEnable) ob das reicht ist eine andere Frage, da zum 
einen die Klasse, zum anderen der Treiber dazwischenfunken kann.
http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/9dd9de8b-0b80-4c92-9201-0d8cf7ade4e4

Lösung: Andere Klasse/Komponente verwenden oder alles selber machen

> Gibt es zum Comport ein Tutorial, damit ich ihn verstehe und das
> Umsetzen kann?
> LG Daniel

von Christian R. (supachris)


Lesenswert?

Ein Serialport, auch ein USB-Serialport ist ein zeichenbasiertes 
Interface. Bei USB kommt noch dazu, dass USB blockbasiert ist. Sind also 
schlicht nicht dafür geeignet, um ein paar Pins wackeln zu lassen. Dafür 
gibts zum Beispiel den IOWarrior.

von Daniel (Gast)


Lesenswert?

Christian R. schrieb:
> Ein Serialport, auch ein USB-Serialport ist ein zeichenbasiertes
> Interface.

Dann ist wohl das einfachste, wenn ich den Comport "normal" benutze und 
die Zeichen erst durch einen uC jage, wie in dem AVR Tutorial hier. Der 
uC könnte ja dann je nach empfangenem Zeichen seine eigenen Ausgänge 
schalten.
Das einzig dumme daran ist der kompliziertere Aufbau, aber ich denke das 
bekomme ich gerade noch hin ;-)

von Arc N. (arc)


Lesenswert?


von Leonard D. (gaffaman)


Lesenswert?

Hi,

den uC mit RS232 zu füttern ist sicherlich die sinnvollste und 
wahrscheinlich auch flexibelste Variante.

Wenn es dir wirklich nur um ein paar Pins geht kannst du unter Umständen 
auch komplett auf einen uC verzichten und über den Parallel Port senden. 
Auch dafür gibt es USB-LPT  Adapter, wobei man bei denen dann aufpassen 
muss, da nicht alle einen LPT Port-Treiber installieren sondern manche 
nur einen virtuellen Druckertreiber.

von Daniel (Gast)


Lesenswert?

Leonard Doyle schrieb:
> den uC mit RS232 zu füttern ist sicherlich die sinnvollste und
> wahrscheinlich auch flexibelste Variante.

Ok, ich bastel dann mal los =P

von Guido Körber (Gast)


Lesenswert?

Parallelportadapter sind Printerdevices, lassen sich also durch die 
automatisch ladenden Treiber nicht so einfach zugreifen.

Wenn es um universellen I/O geht, dann sind die IO-Warrior besser 
geeignet:

http://www.io-warrior.de

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.