Forum: Mikrocontroller und Digitale Elektronik STM32F4 USB CDC Änderung des Gerätenamen


von Paul (Gast)


Angehängte Dateien:

Lesenswert?

Hey,

ich nutze den STM32F407 USB CDC (HAL CUBEMX) und möchte den angezeigten 
Namen im Geräte Manager ändern.

Dazu habe ich diese Zeilen in usbd_desc.c geändert jedoch ändert sich 
nicht der Angezeigte Name im Geräte Manager.

Nur der Produkt String und Seriennummer werden übernommen.
Als CDC Treiber nutze ich VCP 1.4


#define USBD_VID     1155
#define USBD_LANGID_STRING     1033
#define USBD_MANUFACTURER_STRING     "MyManufacture"
#define USBD_PID_FS     22336
#define USBD_PRODUCT_STRING_FS     "MyProduct"
#define USBD_SERIALNUMBER_STRING_FS     "00000000005A"
#define USBD_CONFIGURATION_STRING_FS     "CDC Config"
#define USBD_INTERFACE_STRING_FS     "CDC Interface"



#define USB_SIZ_BOS_DESC            0x0C

von Ui (Gast)


Lesenswert?

Der String aus der usbd_desc.c taucht im Gerätemanager bei dem Gerät in 
den Details unter "Vom Bus gemeldeter Name"  oder so auf. Der Angezeigte 
Name im Gerätemanager kommt aus der Inf-Datei. Du könntest entweder die 
Inf-Datei pimpen oder eine Kopie mit einer anderen Product-ID verwenden. 
Dazu muss natürlich auch die Product-ID in der usbd_desc.c geändert 
werden.

von Paul (Gast)


Lesenswert?

danke für die schnell Antwort.

Das mit der Inf-Datei habe ich bereits versucht, aber bin da auch nicht 
zu einem Ergebnis gekommen.
An welcher Stelle müsste ich denn die Inf-Datei ändern?

Wenn ich die Inf-Datei ändere ist der Treiber auch nicht mehr signiert 
oder nicht?

von Jim M. (turboj)


Lesenswert?

Paul schrieb:
> Wenn ich die Inf-Datei ändere ist der Treiber auch nicht mehr signiert
> oder nicht?

Der Treiber selber ja, aber die .inf Date natürlich nicht mehr. Also 
bekommt man die als $Luser unter Windoof 8 und 10 nicht mehr ohne 
Klimmzüge installiert.

Allerdings kann Windows 10 USB CDC auch ganz ohne .inf Datei, dann 
allerdings mit einem generischen Namen. Auch da wird der per USB 
übertragene Gerätenamen ignoriert.

von Arduinoquäler (Gast)


Lesenswert?

Paul schrieb:
> Das mit der Inf-Datei habe ich bereits versucht, aber bin da auch nicht
> zu einem Ergebnis gekommen.

Das kann nicht sein. Wenn man etwas tut, kommt man zu einem
Ergebnis. Ob einem das gefällt ist eine andere Geschichte,
aber ein Ergebnis bekommt man auf jeden Fall. Sonst hat man
nichts getan.

von Felix F. (wiesel8)


Lesenswert?

Also in meiner usb_desc.c gibt es diesen Teil. Ob eine Änderung aber 
tatsächlich was bringt, konnte ich noch nicht testen.

1
const uint8_t Virtual_Com_Port_StringVendor[VIRTUAL_COM_PORT_SIZ_STRING_VENDOR] =
2
  {
3
    VIRTUAL_COM_PORT_SIZ_STRING_VENDOR,     /* Size of Vendor string */
4
    USB_STRING_DESCRIPTOR_TYPE,             /* bDescriptorType*/
5
    /* Manufacturer: "STMicroelectronics" */
6
    'S', 0, 'T', 0, 'M', 0, 'i', 0, 'c', 0, 'r', 0, 'o', 0, 'e', 0,
7
    'l', 0, 'e', 0, 'c', 0, 't', 0, 'r', 0, 'o', 0, 'n', 0, 'i', 0,
8
    'c', 0, 's', 0
9
  };
10
11
const uint8_t Virtual_Com_Port_StringProduct[VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT] =
12
  {
13
    VIRTUAL_COM_PORT_SIZ_STRING_PRODUCT,          /* bLength */
14
    USB_STRING_DESCRIPTOR_TYPE,        /* bDescriptorType */
15
    /* Product name: "STM32 Virtual COM Port" */
16
    'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0, ' ', 0, 'V', 0, 'i', 0,
17
    'r', 0, 't', 0, 'u', 0, 'a', 0, 'l', 0, ' ', 0, 'C', 0, 'O', 0,
18
    'M', 0, ' ', 0, 'P', 0, 'o', 0, 'r', 0, 't', 0, ' ', 0, ' ', 0
19
  };
20
21
uint8_t Virtual_Com_Port_StringSerial[VIRTUAL_COM_PORT_SIZ_STRING_SERIAL] =
22
  {
23
    VIRTUAL_COM_PORT_SIZ_STRING_SERIAL,           /* bLength */
24
    USB_STRING_DESCRIPTOR_TYPE,                   /* bDescriptorType */
25
    'S', 0, 'T', 0, 'M', 0, '3', 0, '2', 0
26
  };

mfg

von Ui (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe es nochmal selbst probiert. Das Ergebnis ist in den Anhängen.

von Ui (Gast)


Angehängte Dateien:

Lesenswert?

Noch einen vergessen

von Paul (Gast)


Lesenswert?

Das sieht ganz gut aus.

Unter welchem Pfad liegt die INF-Datei die du geändert hast?
Hast du VID und PID aus den Default-Einstellungen von CubeMx übernommen 
und du hast auch VCP-Treiber Version 1.4 installiert?

von Ui (Gast)


Lesenswert?

C:\Programmex86\Stm...\Stm...\Win8

Ja

Ja

Ich habe die exe zur Installation des Treibers nochmal laufen lassen

von Jim M. (turboj)


Lesenswert?

Ui schrieb:
> Ich habe die exe zur Installation des Treibers nochmal laufen lassen

Klappt nicht. Die neue inf ist nicht signiert, das erlaubt Win 8+ nicht 
mehr ohne Test-Mode.

von Paul (Gast)


Lesenswert?

Jim M. schrieb:
> Klappt nicht. Die neue inf ist nicht signiert, das erlaubt Win 8+ nicht
> mehr ohne Test-Mode.

Habe genau das selbe Problem, die INF-Datei ist dann nicht mehr 
signiert. Man hat ja auch keine Möglichkeit das zu umgehen oder? 
(Ausgenommen man startet im Test Modus)

von Ui (Gast)


Lesenswert?

Ich gebe zu es war Windows 7. Im Netz gibt es allerdings Anleitungen wie 
z.B.

http://digital.ni.com/public.nsf/allkb/36DB8D6AC385052786257A940066A421

Dabei wird halt noch ein Zertifikat erstellt das vorher auf dem Rechner 
installiert werden muss.

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.