Hallo Zusammen,
ich habe min. 2 FT232R über ein USB-HUB an den Rechner angeschlossen.
Alles tuts... Allerdings nervt es mich, dass im Gerätemanager immer der
Eintrag USB Serial Port xxx steht und man dem Gerät nicht einen
eindeutigen Namen geben kann. Gibt es eine Möglichkeit, diese Namen
individuell im Chip einzustellen? Mit Mprog bin ich am Gange, aber
irgendwie bringt mir die Bezeichnung nix, wenn die nur bei der
Installation einmal aufpoppt und im Gerätemanager steht nicht genau
dieser Eintrag, sondern USB Serial Port xxx...
Welche .ini oder .inf ist dafür verantwortlich? Ich verwende den orginal
Kombitreiber von ftdi. Ist es möglich, einen abgewandelten Treiber zu
schreiben, der im Gerätemanager, je nach Seriennummer des FTDI´s einen
eigenen DeviceString anzeigt? Kennt jemand Links zu dieser Problematik?
danke und gruß
Spice
Das ginge schon, wenn du den Qualifier im inf für jede Seriennummer
einzeln beschreibst. Ist aber unsauber und sowas macht man nicht. Und
wie schon geschrieben, ist die Signierung dann hinüber.
>> und sowas macht man nicht
Na, ja laut FTDI schon :
snip -----------------------------------------------------------------
Hello,
We have allocated 8 PIDs to you from XXXX to XXXX (hex).
The PIDs must be used with VID 0403.
To reprogram the EEPROM use FT_PROG.
http://www.ftdichip.com/Resources/Utilities/FT_Prog.ziphttp://www.ftdichip.com/Resources/Utilities/FT_PROG_README.TXT
NOTE 1: Editing the driver for your new identity will invalidate any
current driver certification.
NOTE 2: It will be necessary for you to maintain your own edited driver
release for distribution to your customers.
snip -----------------------------------------------------------------
Die PIDs kann man sich ausdenken zur Sicheheit kann man auch noch die
VID ändern damit man nicht mit anderen FTDI Geräten in Konflikt kommt,
es geht hier ja wohl um ein paar einzelne Geräte für privat!
Stefan
Spice schrieb:> Allerdings nervt es mich, dass im Gerätemanager immer der> Eintrag USB Serial Port xxx steht und man dem Gerät nicht einen> eindeutigen Namen geben kann.
Hallo,
da hat sich einfach nichts geändert, die Schnittstellen hiessen früher
COM1 bis COMn, und das ist immer noch so - du musst dir ja nur die Nr.
der COM-Schnittstelle merken, das war noch nie anders, und eigentlich
sollten ja auch alle solchen Schnittstellen gleichwertig sein.
In Linux kannst du meines Wissens für Schnittstellen auch Aliasnamen
vergeben wie "GPS-Interface" usw., aber bei Windows wird das nicht gehen
und wenn findet die Software womöglich keine Schnittstellen mehr.
Gruss Reinhard
Stefan schrieb:> Die PIDs kann man sich ausdenken zur Sicheheit kann man auch noch die> VID ändern damit man nicht mit anderen FTDI Geräten in Konflikt kommt,> es geht hier ja wohl um ein paar einzelne Geräte für privat!
Naja, bei max. 8 Geräten mag das gehen, aber der Fragesteller hat nach
der Seriennummer gefragt. Das ginge auch, aber die COM-Namen heißen dann
trotzdem COM 1 bis COM x. Außerdem ist auch die Signatur futsch, wenn
man die PID ändert. Normalerweise identifiziert man die über die
Software. Meine Software für die FTDI basierten Serial-Wandler
lokalisiert den passenden virtuellen COM Port über die Registry anhand
der eindeutigen Seriennummer. Das ist sehr leicht zu programmieren.
Wenn man sich auf diese Treiberfummelei nicht einlassen will, kann man
in die Firmware seines Zielgerätes eine
"Whats-your-serial-number"-Funktion implementieren, meinetwegen auch
Verschlüsselt. Die Software am Rechner klappert nacheinander alle
Com-Ports ab und fragt die Geräte danach. Wo nicht das richtige kommt,
ist wohl nicht "dein" Gerät.
mfg mf
Hallo,
Sicher heißen die Ports dann noch COMX währe ja sonst auch blöd.
Aber im Gerätemanager steht dann <mein neuer Name (COMX)>
Damit kannst Du dann auch mehre Geräte auf den gleichen COM legen und
siehst dann welches angesteckt ist. Dazu muss man weder PID noch VID im
FTDI ändern, kann aber.
Man braucht aber nicht für jedes Gerät eine registrierte PID!
Die Strings die im Gerätemanager auftauchen in der inf suchen und
ändern. Dann den Treiber überinstallieren. Next device - same procedure.
Es ging nur darum ob man sowas so macht und da schließt sich FTDI meiner
Meinung an ;-)
Wenns darum geht Geräte aus einer eigenen Software zu identifizieren
würde ich auf jeden Fall die D2XX Schnitstelle benutzen dann brauchts
keinen COM.
Stefan
Mini Float schrieb:> Die Software am Rechner klappert nacheinander alle> Com-Ports ab und fragt die Geräte danach.
Hallo,
das ist viel zu riskant. Du kannst niemals wissen wie ein fremdes Gerät
auf deine Abfragesequenz reagiert. Die Erkenntnis, das das so nicht
geht, ist schon so alt wie die serielle Schnittstelle, da war selbst
Microsoft trotz der eingebildeten Weltherrschaft genötigt, bei Bedarf
das Suchen nach einer Maus an allen Anschlüssen zu unterbinden. U.a.
wurde dadurch manchmal die Notstromversorgung abgehängt, oder ein Modem
wählte Neuseeland an.
Gruss Reinhard
Hallo Reinhard,
kann man Windows das suchen und erkennen einer seriellen Maus generell
oder ab einem bestimmtem Port verbieten? Wenn ich neues USB Gerät egal
ob anstecke und der Controller ist gerade in Plauderlaune dreht mein
Windows durch und denk es ist eine Maus. Im Gerätemanager wird dann eine
seielle Maus angezeigt. Ein zwei mal ist's ja lustig aber auf Dauer.
Stefan
Hallo Zusammen,
vielen Dank für die zahlreichen Antworten. Nachdem ich nun ein wenig
rumprobiert habe, werden die FTDI´s mit den neuen PIDs wieder erkannt
:-)
Ich beschreibe mein Problem mal ausführlicher...
Ich habe an einem USB Hub 2 FT232´s hängen, welche mit verschiedenen
PIDs versehen sind. Kurzzeitig konnte ich mit den Treibern, die bereits
installiert waren nicht mehr auf die FTDIs zugreifen und Mprog auch
nicht, aber nachdem ich die .inf editiert habe (ich glaube die
FTD2xx.inf), werden die nun auch wieder "erkannt".
Mein Problem ist nun, dass wenn ein dritter FT232 mit standartwerten im
EEPROM angeschlossen wird, dieser zwar richtig erkannt wird und der VCP
Treiber geladen wird, wobei bei den anderen beiden, die über den HUB
angeschlossen sind und eine andere PID haben, der FTD2xx treiber geladen
wird und ich keine COM-Schnittstelle sehe.
Bevor ich im EEPROM rumprobiert habe, konnte ich im GeräteManager beiden
USB-Geräten auswählen, dass "VCP aktiviert" werden soll, dann lief alles
und die COM Schnittstellen wurden erkannt, jedoch haben sich die FTDI´s
untereinander leicht verhaspelt und darum würde ich im GeräteManager
gerne verschiedene Namen für diese beiden Geräte vergeben, welche ich in
die Treiber.inf eintrage...
Meine Frage ist nun, wie bekomme ich es hin, dass die beiden FTDI´s
wieder den VCP Treiber laden und ein COM-Port zur Verfügung stellen und
welche Dateien muss ich wo editieren, dass die neuen PIDs auch wieder
erkannt werden und der VCP Treiber geladen wird? Ich habe im EEPROM der
FTDI´s die Seriennummer abgeschaltet gehabt. Es geht quasi darum, dass
sich die beiden FTDI´s am HUB wie zwei COM-Ports verhalten, im
GeräteManager allerdings für diese beiden Geräte nicht USb Serial
Converter COM xx steht, sondern zum Beispiel DebugSerielle COM xx und
RS232 COM xx, damit ich diese beiden Geräte untereinander und von dem
anderen COM-Port geraffel unterscheiden kann.
Besten Dank nochmal an alle
Gruß Spice
Ich verwende die Microchip MCP2200 USB-Seriell-Chips, weil diese keine
proprietären Binärtreiber brauchen, sondern die Standard USB CDC Klasse
implementieren, und den Treiber hat jedes Betriebssystem einfach so
eingebaut. Windows will nur noch ein .inf haben.
Mit dem Standard-Inf steht da zwar immer noch "USB Serial Port" (das
läßt sich im Inf ändern), aber unter Eigenschaften finde ich den String,
den ich mit dem Konfigurationstool in den Chip hineingeschrieben habe.
Funktioniert das bei Dir nicht? Programmtechnisch kannst Du diesen
String mit der Setup API abfragen.
Ansonsten schwenke auf echte USB-Controller um, die Du z.B. per HID
ansteuerst. Dann hast Du zumindest das Problem nicht mehr.
fchk
Soweit ich weiß, ist das eine Konfigurationsoption im EEPROM, welcher
Treiber geladen wird, mit FT_Prog einstellbar.
Übrigens: Wenn man die FTDI-Bibliothek (DLL) benutzt, kann man die Ports
auch mit Namen oder Seriennummern ansprechen.
Danke für die Antworten,
ich habe kein WindowsTool, es soll quasi ausschliesslich mit einem
TerminalProgramm laufen, daher kein WinCode...
Die Eigenschaften von dem Device zeigen, dass die Registerkarte
"Erweitert" fehlt, wo man "VCP laden" anklicken kann.
Noch etwas, was mir gerade auffällt...
Sobald ich die EEPROMs wieder auf die Defaultwerte VID/PID 0403/6001
zurücksetze funktioniert auch das laden der COM-Ports... Bei VID/PID
0403/6011 wird kein VCP geladen, woran liegt das? Wo liegen die
inf-files für den VCP-Treiber? Welche muss ich editieren? Ich habe
bestimmt 30 von den Files auf dem Rechner vergraben von irgendwelchen
FTDI-projekten mit angepassten treibern... Wie geht man da am besten
vor? Ich vermute, dass ich auch in die VCP-Treiber inf´s die VID und
PIDs hinzufügen muss, damit auch die PID 6011 erkannt wird und der
Com-Port geladen wird?
Danke nochmal und Gruß
Spice
Bei meinen Boards habe ich eigene VIDs und UIDs in FTDIbus.inf und
FTDIport.inf zugefügt. Hab' da keine Probleme.
Sie tauchen dann im Gerätemanager unter USB und Ports mit den gewählten
Name auf.
Kann mir jemand den Unterschied der beiden Zeilen erklären?
Was bewirkt das "&MI_xx"
%USB\VID_0403&PID_6011.DeviceDesc%=FTD2XX, USB\VID_0403&PID_6011
%USB\VID_0403&PID_6010&MI_00.DeviceDesc%=FTD2XX,
USB\VID_0403&PID_6010&MI_00
Hallo Spice,
XXXX ist deine PID die Du im EPROM des Geräts hast
YYYY ein beliebiger String der unter Anschlüsse bzw. USB-Controller
angezeigt wird.
------------------------------------------------------------------
ftdiport.inf :
%VID_0403&PID_XXXX.DeviceDesc%=FtdiPort232.NT,FTDIBUS\COMPORT&VID_0403&P
ID_XXXX
[FtdiHw.NTamd64]
%VID_0403&PID_XXXX.DeviceDesc%=FtdiPort232.NTamd64,FTDIBUS\COMPORT&VID_0
403&PID_XXXX
[Strings]
FTDI="YYYY Name"
DESC="YYYY Driver Package"
DriversDisk="YYYY Drivers Disk"
PortsClassName = "Ports (COM & LPT)"
VID_0403&PID_XXXX.DeviceDesc="YYYY Serial Port"
--------------------------------------------------------------------
ftdibus.inf
[FtdiHw]
%USB\VID_0403&PID_XXXX.DeviceDesc%=FtdiBus.NT,USB\VID_0403&PID_XXXX
[FtdiHw.NTamd64]
%USB\VID_0403&PID_XXXX.DeviceDesc%=FtdiBus.NTamd64,USB\VID_0403&PID_XXXX
[Strings]
Ftdi="YYYY Name"
DESC="YYYY Driver Package"
DriversDisk="YYYY USB Drivers Disk"
USB\VID_0403&PID_XXXX.DeviceDesc="YYYY Device"
SvcDesc="USB Serial Converter Driver"
ClassName="USB"
--------------------------------------------------------------------
Wichtig ist das Du jeweils eine zum EPROM passende inf Datei hast da
sonst Windows den Treiber nicht installiert. Wenn beide Dateien passen
kann man auchden COM-Port für eine beliebige PID installieren. Die
Dateien befinden sich im Verzeichnis des Treiber. Wie gesagt sollte es
bei FTDI (jedenfalls vor einem Jahr) ein PDF zum Thema geben.
Stefan
Hey Stefan,
vielen Dank für die Beschreibung, sowas habe ich vermutlich gesucht, ich
teste das gleich mal. Ich habe mich gerade ein wenig bei google verirrt,
als ich danach suchte, wie man im Gerätemanager unter Anschlüsse den
Namen der einzelnen COM-Ports ändern kann (nicht die Nummer) aber nix
gefunden. Vermutlich ists genau deine Beschreibung, wie das
funktioniert, ich teste das mal...
Gruß Spice