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?
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.
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
> 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!?
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.
Fehler gefunden. Der Registry Eintrag war nicht vollständig. Es war nur die Vendor und Product ID angegeben. Es hat noch die Revision ID gefehlt.
Doch nicht, der Registry Eintrag hat nur leider nicht gewirkt. Hat sich nichts geändert.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.