This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28388D: Is there no way to achieve a Windows Compatible ID (WCID) USB device without using modified USB Library code?

Part Number: TMS320F28388D


Hi,

I recently read up on the benefits of Windows Compatible ID USB devices (aka WinUSB Devices), namely how they don't require the installation of custom driver packages.

But certain steps must be taken to achieve such features. The first is that the bcdUSB field in the device descriptor must be set to 0x200 (making it a USB 2.0 device) instead of the normal 0x110 (a USB 1.1 device). Second the device must be able to answer the request to read a special string descriptor at address 0xEE with a very specific set of descriptor data. Once that string descriptor read request is successfully answered, the Windows host will attempt to read additional OS specific descriptors to complete the process.

However, the USB library doesn't allow one to change the USB version nor does it allow one to add a request handler function to the g_sBulkHandlers variable to handle the requests for the OS specific descriptors. I found that such changes are only possible through modifying parts of the USB library code (or substituting specific library source files with a custom version in a device application project).

But rather not change library code even with substitution within an application and preferably not have to use the USB Device AP it would be far too time consuming (even though all usbdbulk.c does is encapsulate the USB Device API). So is there a "cleaner" to achieve my goals of a WCID USB device?

Sincerely,

Howard Li