Forum: PC Hard- und Software USB CDC - inf -File für Windows 7-X64?


von Gästchen (Gast)


Lesenswert?

Hi,

ich habe den M-Stack USB-Stack mit CDC auf einem PIC32 am Laufen.
Von der PIC-Seite her sieht es gut aus, Enumeration funktioniert, im 
Device-Tree-Viewer ist das "configured" und der Descriptor ist 
vollständig.

Mit Ubuntu gehts obendrin.

Ich habe gelesen, dass Windows den Treiber schon mitbringt (usbser.sys), 
ihn aber ohne inf nicht installiert.
Tatsächlich findet sich diese Datei bei mir auch da wo sie sein soll.

Woher bekomme ich den nötigen Windows-7 inf-File?
Oder wie überredet man Windows, seinen eigenen  Treiber zu starten?

Wäre toll, wenn mir jemand weiterhelfen könnte.

von bluppdidupp (Gast)


Lesenswert?

https://msdn.microsoft.com/en-us/library/windows/hardware/dn707976(v=vs.85).aspx

(ab Win10 wird keine eigene .inf mehr benötigt, wenn die im Artikel 
genannten Bedingungen zutreffen)

von Gästchen (Gast)


Lesenswert?

Hi,

danke für den Link.

Alle Versuche eine CDC-Treiber-inf selber zu erstellen führten 
allerdings nicht zum Erfolg.

Allerdings habe ich eine Lösung gefunden:
Beim M-Stack CDC-Code ist ein inf-File mit drin.
Dieses funktioniert.

Wenn man sich das Repository von github zieht, ist das file mit dabei. 
In dem Fall lässt man Windows einfach in dem Ordner suchen und fertig.

Das File heißt "cdc-acm.inf".

Natürlich wird man von Windows angemeckert, das wäre nicht signiert, 
aber das kann man ja wegklicken.

Manchmal dankt man einfach zu kompliziert :-)

von Gästchen (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ein Problemchen habe ich noch: Der Port kann mit Putty nicht verwendet 
werden.

Putty sagt "failed to configure serial port". Was damit zusammenhängen 
dürfte, dass es keine Einstellungen gibt (siehe Screenshot oben).

Das ist auch kein richtiger CDC-Port, sondern es wird der Treiber 
"mdmcpq.inf" inkludiert, was glaube ich gar nicht für eine virtuelle 
serielle ist.

Ein selber geschriebenes Kommandozeilentool kann darüber aber schön mit 
dem µC kommunizieren. Vermutlich weil mein Tool zu dumm ist, um an den 
Porteinstellungen herumzuspielen. Also tippe ich darauf, dass der Port 
die Versuche von Putty übel nimmt, da eine Baudrate einstellen zu 
wollen.

Kann mir jemand sagen, was das genau für ein Port ist?
Wie könnte ich z.B. Putty dazu bewegen, darüber zu kommunizieren?

von Gästchen (Gast)


Lesenswert?

Hi,

kenne jetzt den Grund:
Dass das funktioniert, muss man die entsprechenden Callback-Funktionen 
im Projekt auch implementieren. Putty versucht eine Baudrateneinstellung 
vorzunehmen, aber das geht natürlich nicht, weil weder Treiber noch mein 
Device das unterstützen.
Im Device sind dafür einige Funktionen vorgesehen, die liefern bei mir 
aber nur "kann ich nicht" zum Host zurück. Diese müsste ich umsetzen, da 
muss man z.B. die Einstellungen speichern und dem Host zurückliefern und 
ähnliches

Zusätzlich muss man einen Treiber verwenden, der das auch unterstützt.

Dazu bin ich ehrlich gesagt zu faul, denn ich brauche das ohnehin nur 
als Schnittstelle zu einem noch selber zu schreibenden Programm. Und 
damit klappts ja - also lasse ich das vorerst so.

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.