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:在不使用修改的 USB 库代码的情况下、是否无法实现 Windows 兼容 ID (WCID) USB 器件?

Guru**** 2037690 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/960975/tms320f28388d-is-there-no-way-to-achieve-a-windows-compatible-id-wcid-usb-device-without-using-modified-usb-library-code

器件型号:TMS320F28388D

您好!

我最近了解 了 Windows 兼容 ID USB 设备(又名 WinUSB 设备)的优点、即它们不需要安装自定义驱动程序包的方式。

但是,必须采取某些步骤来实现这种特性。 第一个是器件描述符中的 bcdUSB 字段必须设置为0x200 (使其成为 USB 2.0器件)、而不是普通的0x110 (USB 1.1器件)。 其次、器件必须能够通过一组非常具体的描述符数据来响应读取地址0xEE 处特殊字符串描述符的请求。 成功回答字符串描述符读取请求后、Windows 主机将尝试读取其他特定于操作系统的描述符以完成该过程。

但是、USB 库不允许用户更改 USB 版本、也不允许向 g_sBulkHandlers 变量添加请求处理程序函数来处理操作系统特定描述符的请求。 我发现只有通过修改 USB 库代码的部分(或者在器件应用项目中用一个定制版本替换特定的库源文件)、此类更改才有可能。

但是、即使在应用程序中进行替换、也不要更改库代码、并且最好不必使用 USB 器件 AP、这会太耗时(即使所有 usbdbstall.c 都封装了 USB 器件 API)。 那么、是否有"更干净"的器件来实现我的 WCID USB 器件目标?

此致、

李孝华

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Howard、

    实现此目的的唯一方法是更新 USB 库代码。 您可以在  usbdbulk.c 中更新 g_pui8BulkDeviceDescriptor (Device descriptor)或定义不同的器件描述符来实现 WCID。

    此致

    Siddharth