cancel
Showing results for 
Search instead for 
Did you mean: 

STM32 USB CDC class 'Bus Reported Device Description' does not show up

MOtto.1
Associate II

Hi, i am wondering if someone has the same issue than me. I could not see the bus description in the device manager nor i could read it via APIs in my software. It is simply not there. This is the case on my win11 development PC, it's not the case on win10 PCs. How could that be. I'm trying to change the descriptor on the stm board, so i can recognize this specific board in my PC-App. Do i miss some settings or does win11 handle that differently?

Thanks in advance

7 REPLIES 7

Bad cable/hub/USB port on the W11 machine?

Observe how the USB reset/enumeration process progresses (or not) in the 'F4 firmware. The "real stuff" is to observe the bus using a protocol analyzer (sometimes part of a LA or oscilloscope). The windows side is usually less penetrable.

JW

 

Hi, the thing is that the driver is loaded and it can be used afterwards. The only thing is that this 

'Bus Reported Device Description' in the device manager doesn't occure. Plenty of other stuff do.

The COMPORT is listed and more.   

> The COMPORT is listed and more.

So the basic USB functionality is OK?

I'm not sure you can get relevant help on Windows-specific issues here. Microsoft is not exactly known for precisely documenting their software nor for meticulously adhering to any standards, even their own.

JW

Pavel A.
Evangelist III

Yes some changes occurred in Win11. What API do you use to get 'Bus Reported Device Description' these device properties? or you simply look in the device manager detail? Have you tried to plug other USB devices and compare? Finally, is some software installed (like the corporate "device control" cr@p or network USB redirectors) that can interfere with USB?

Try the "Microsoft descriptor" v.2, IIRC it allows to specify "winusb device" with custom device interfaces that you can detect via the API. Don't remember the details, you can also ask on the Microsoft forum or S.O.

 

Hi, i'm using the windows APIs from the setupAPI library. So basically i'm invoking that call

if (SetupDiGetDeviceProperty(DeviceInfoSet, &DeviceInfoData, &DEVPKEY_Device_BusReportedDeviceDesc,
&ulPropertyType, (BYTE*)szBuffer, sizeof(szBuffer), &dwSize, 0))
{
_tcscpy_s(szBusname, dwSize, szBuffer);
}

together with those magic numbers from devpkey.h

DEFINE_DEVPROPKEY(DEVPKEY_Device_BusReportedDeviceDesc, 0x540b947e, 0x8b40, 0x45bc, 0xa8, 0xa2, 0x6a, 0x0b, 0x89, 0x4c, 0xbd, 0xa2, 4); // DEVPROP_TYPE_STRING

 

For other devices i do get the bus id description but unfortunately not for my own stm32 with little changes in the descriptors string. But good hint i will change the driver for my stm32 for testing.

Thanks

Pavel A.
Evangelist III

What is the error code?  GetLastError() ?

 

I tried to change the driver to Winusb but no changes happens. From GetLastError() i retrieve 1168 - "Element not found". The funny thing is i used some open source tools to read the USB descriptors and i do get them. "USBDeview" if interested. So what is he doing other then me? Well i think i will move this thread to the Microsoft community.