USB Treiber wird nicht erkannt

Gast #4661742
Lesenswert?
• ▲
▼
Hallo,

auf einen Mikrocontroller habe ich die USB CDC Klasse als Device 
implementiert und über USB an meinen PC angeschlossen.
Als Treiber habe ich ein .inf File von Controllerhersteller installiert.
Das hat soweit auch alles funktioniert und mein Device wird erkannt und 
kann über einen irutal Com Port mit dem PC kommunizieren.
Da die angeschlossenen Controller unterschiediche Seriennummern haben, 
wird jedes Mal ein neuer Com Port für erstellt, sobald ich einen neuen 
Controller anschließe. Um das Problem zu umgehen habe ich folgenden 
Eintrag zur Registry hinzugefügt:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags]
"IgnoreHWSerNum123E0006"=hex:01

Dieser passt zur Vendor und und Produkt ID vom USB CDC Device.

Nachdem ich den Eintrag einzugefügt habe, habe ich folgendes Problem:

Schließe ich den Controller an einen USB Port an meinem PC an, wird er 
nicht richtig erkannt. Siehe hierzu auch den beigefügten Screenshot.
USB_CDC verwendet den .inf Treiber vom Controllerhersteller und meldet 
sich an COM 7 aber USB_CDC_DATA bleibt übrig und dafür wird kein Treiber 
gefunden. Schließe ich das Device an einen anderen freien USB Anschluss 
an meinem PC an, wird sofort der .inf Treiber verwendet und alles 
funktioniert einwandfrei. Siehe hierzu den zweiten Screenshot.

Hat jemand eine Idee woran das liegen könnte?
Angehängte Dateien:
Gast #4661866
Lesenswert?
• ▲
▼
Schau mal unter Eigenschaften von USB_CDC_DATA mit dem gelben 
Ausrufezeichen, was das Problem ist.

Ebenfalls hilfreich wäre die Hardware-ID und Geräteinstanz-ID von 
USB_CDC_DATA und "MCB1700 USB Vcom Port" im Gut- und Schlechtfall, sowie 
das INF-File, das Du benutzt.

Außerdem sollten in C:\Windows\INF\setupapi.dev.log mehr Informationen 
stehen. Am besten löscht Du die Datei, schließt das Gerät an und schaust 
Dir dann die Meldungen an bzw. postet sie hier.
Gast #4662025
Lesenswert?
• ▲
▼
Hallo Hans,

die setupapi.dev.log Datei ist nach dem Löschen nich wieder hergestellt 
worden. Ich habe mehrmals versucht eine neue zu erstellen, indem ich den 
USB Stecker an- wieder abgezogen habe.

Die Problembeschreibung von USB_CDC_DATA sowei das .inf File habe ich in 
den Anhang mitgepackt.

Vielen Dank für die Hilfe
Angehängte Dateien:
Gast #4662077
Lesenswert?
• ▲
▼
> Da die angeschlossenen Controller unterschiediche Seriennummern haben,
> wird jedes Mal ein neuer Com Port für erstellt

Was leider nicht immer so war. Ich bin sehr froh darüber, dass Microsoft 
dieses Feature inzwischen nachgereicht hat.

Ich hoffe du hast einen gut durchdachten Grund, dies zu umgehen!?
Gast #4662119
Lesenswert?
• ▲
▼
Ja, weil andernfalls irgendwann die verfügbaren Com Ports zu Ende sind 
und es sonst ein größerer Aufwand ist verschiedene Programme 
automatisiert zu starten, wenn sich immer der Com Port der Applikation 
ändert.
Gast #4663617
Lesenswert?
• ▲
▼
Was passiert denn, wenn Du den Treiber für USB_CDC_DATA aktualisierst, 
wie es in dem Screenshot steht? Sprich, auf "Treiber aktualisieren" 
klicken und auf den Ordner zeigen, in dem das Inf-File liegt.

Hier ist noch ein anderer Registry-Eintrag beschrieben, den Du probieren 
könntest:
https://msdn.microsoft.com/en-us/library/windows/hardware/jj649944(v=vs.85).aspx

Dort kommt zuerst Vendor/Device/Revision-ID als eigener Registry-Key und 
darunter der "IgnoreHWSerNum"-Eintrag ohne angehängte Vendor/Device-ID.

Ob der Eintrag wirkt, kannst Du an der Device-Instance-ID (auf Deutsch 
vermutlich "Geräteinstanz-ID" o.ä.) sehen. Die steht unter Gerätemanager 
-> Eigenschaften des Geräts -> Details in der Auswahlliste. Sie begint 
mit "USB\VID_123e&PID_0006" und endet entweder mit der Seriennummer oder 
einem vom Bustreiber generierten String à la "6&1b8ff026&0&6", der 
abhängig vom USB-Port ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren