Forum: PC-Programmierung C#: FTDI über VCP finden


von Phil (Gast)


Lesenswert?

Hallo!

Ich bastle gerade ein wenig rum und will zwei kleine Platinen an meinen 
Rechner anschließen. Dafür verwende ich jeweilss FT232.

Die Software zur Ansteuerung der Platinen schreib ich in C#.
Meine erste Frage war ob ich den D2xxx- oder den VCP-Treiber nehme.
Der VCP scheint mit -für einen Laien- um ein vielfaches einfacher zu 
sein.

Die Frage ist, wie ich jetzt meine angeschlossenen Geräte finde.
Muss immer nach schauen, welche COM angelegt wurden und diese eingeben. 
Und dann kann es vorkommen, dass ich den Port von Platine 1 für Platine 
2 verwende und umgekehrt.
Kann man das irgendwie automatisieren? D.h. es werde einfach die 
COM-Ports gescannt und meine Platinen gefunden. Und auch gleich erkannt, 
welche die 1 und welche die 2 ist? Kann man das über die VID & PID 
machen?

Danke für eure Hilfe!

Gruß
Phil

: Verschoben durch User
von ich (Gast)


Lesenswert?

Das würde mich auch interessieren. Gibt es in Windows die möglichkeit 
den Gerätenamen (bei FTDI Standartmäßig "USB-Serial Cable" oder so) zu 
suchen und den entsprechenden COM-Port zurück zu bekommen?

von Einhart P. (einhart)


Lesenswert?

Ich habe als Lösung für Arme unter VB 6 folgende Lösung gewählt:

Beim Programmstart lasse ich DevCon.EXE mit Umleitung in eine Datei 
laufen:

  ShellAndWait "cmd.exe /C c:\X\devcon find USB\VID_0177* > " & 
USB_INFO_FILE  ' ??? Geräte
  ShellAndWait "cmd.exe /C c:\X\devcon find FTDIBUS\* >> " & 
USB_INFO_FILE     ' VCOM ports

In der Datei finden sich dann die Informationen wie Serien- und 
Portnummern

von Christian R. (supachris)


Lesenswert?

Geht alles bequem über die Registry:

1. In HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\FTDIBUS 
nachschauen, wieviele und welche FTDI Geräte installiert sind. Aus denen 
kannst du dann das passende raussuchen (Seriennummer steht ja mit dran).

In jedem der Reg-Ordner gibts dann einen Ordner \0000\DeviceParameters\ 
dort befindet sich die aktuell zugewiesene COM-Port-Nummer.

2. Mit der COM-Port-Nummer in 
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM nachschauen, ob der 
momentan auch wirklich dran steckt.

von Willivonbienemaya .. (willivonbienemaya)


Lesenswert?

Ich würde die FTD2XX_NET.dll empfehlen.
Damit ist das kommunizieren mindestens genauso einfach wie über den VCP.

Ausserdem gibts da Funktionen wie: "GetCOMPort"
Ratet mal was die zurückgibt.

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.