问题标签 [usb-descriptor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 适用于 Windows XP、7、8 应用程序的 USB 麦克风描述符
我正在尝试使用 STMicroelectronics 的 USB-FS 库在 STM32F103 上实现 USB 麦克风。
在 Windows XP、7 和 8 上检测到我的麦克风。当我尝试使用 Audacity 录制语音时,信号在 Windows XP 和 Windows 8 上是正确的,但在 Windows 7 上它被放大了。
有谁知道发生了什么?
这是描述符:
usb - 如何分配 USB 的设备描述符“BCD 设备版本号”
这是USB描述符的代码(以设备描述符为例)。我了解除 BCD 设备版本号之外的这些设置。我阅读了几个不同项目的 USB 代码。他们的设备版本号都不同。什么决定了设备版本号?有清单吗?
usb - USB:可以在一个接口上定义多个不同的 HID 游戏杆吗?
我正在构建一个适配器,通过 USB 将各种视频游戏控制器连接到 PC。它的核心是使用 Cortex-M4 处理器的 Teensy 3.1 微控制器。
M4 能够处理原始 USB 数据包,从而模拟任何类型的 USB 设备。我已成功对其进行编程以呈现复合 USB 设备:
- 接口1,端点1:USB串口(用于调试)-状态接口
- 接口 1、端点 2:USB 串行 TX/RX 接口
- 接口 2,端点 3:HID 摇杆
现在的问题是,我希望能够同时连接几种不同类型的游戏控制器(例如 Nintendo 和 Super Nintendo)。我的适配器总共有超过 15 个端口,这意味着我不能只为每个端口分配一个端点,因为 USB 总共只允许 16 个端点。
阅读 HID 报告描述符规范,我得到的印象是可以在同一接口上定义多个独立设备。然而,尽管我尽了最大的努力,我似乎无法做到这一点。应用程序(例如jstest-gtk
)只能看到一个巨大的操纵杆。
现在我正在使用这个报告描述符:
我曾希望提供一个带有 8 个按钮的操纵杆和一个带有 16 个按钮的操纵杆,但应用程序看到的是一个具有 24 个按钮的操纵杆。
真的可以这样定义多个独立的操纵杆吗?
usb - 如何给每个 USB 接口起一个唯一的名称?
我正在为可以同时连接 2 个扬声器的设备编写设备驱动程序。
这两个接口以相同的名称显示在主机(我使用的是 Windows 主机)上。我怎样才能给每个接口一个唯一的名字——比如扬声器 1 和扬声器 2?
usb - 如何更改 USB 小工具端点类型?
我知道 USB 端点有一些模式(控制、批量、中断和同步),它们可用于各种目的,但我不知道如何在小工具中将 USB 端点更改为这些模式?我已经阅读了 USB2.0 规范,然后我可以通过以下设置获取 USB 传输描述符:
但是我仍然不知道我应该怎么做才能改变USB传输模式?
usb - USB3.0超速设备描述符失败
我正在尝试将设备模拟为 USB3.0 超高速(我们的平台支持 USB3.0 集线器)。下面是我用于设备枚举的设备描述符。
我运行 USB3HWAnalyzer 工具来分析故障问题,下面是错误跟踪。13094733443.428871:(UsbHub3/176)事件消息:DescriptorValidationErrorDeviceInvalidBMaxPacketSize PortPath:0x1、0x0、0x0、0x0、0x0、0x0
基本上它失败是由于 -- 0x09, /* EP0 的 Maxpacket 大小:2^9 = 512 字节 */
我不明白为什么?这个问题有什么正当理由吗?
天呐!
stm32 - 如何仅使用一个 USB 连接器获得两个 VCP?
我试图用一个 USB 连接器(STM32F4 探索板中的 CN5)模拟两个虚拟 COM 端口,但徒劳无功。
我知道我必须将复合 CDC 类配置为具有多个接口,使用 ACM 功能描述符(抽象控制模型)进行虚拟 COM 端口通信,但是如何使它们成为两个 VCP?
我已经完成了一个 CCI(通信类接口)和一个 DCI(数据类接口),这让我在Device Manager中只有一个 VCP 。
我试过做两个 CCI 和两个 DCI,但是没有用!
这是我的接口关联描述符的设备描述符:
我的 CDC 配置有两个 IAD,每个 CCI 和一个 DCI:
如何将 CDC 类配置为具有两个 VCP?这些配置有什么问题?
linux-kernel - Linux USB 小工具自定义配置
我正在使用运行 Linux Kernel 3.14.18 的 i.Mx6 Sabre Lite 板,并且板应该充当 USB 设备(USB 小工具)。需要将一个供应商特定接口添加到 CDC/NCM 配置中。CDC/NCM 配置默认有两个标准接口——通信和数据。我在 CDC/NCM 配置中添加了第三个接口(特定于供应商)。该接口有两个 Bulk (IN & OUT) Endpoints。一旦板使用“lsusb”连接到 PC,我就可以验证这个新添加的接口。
问题:
我看不到新添加的接口暴露在 i.Mx Board 或 PC 上的用户空间,就像标准 NCM 接口可以看作是 i.Mx Board 和 PC 上的 usb0(以太网设备),我可以 PING 到/从板使用usb0。
如果我必须将这个新添加的接口与一些 g_“驱动程序”连接起来(就像标准 NCM 接口连接到 g_ether);那么 BULK I/O 的最佳选择是什么?
如何使这个新添加的供应商特定接口可用于 i.MX6 用户空间,以便从 Linux 应用程序对其进行读/写?我开始了解 GadgetFS;但任何例子都是
希望有人在Linux-USB中尝试过类似的事情并可以指导。
usb - USB CDC 仅工作一次,带中断 endp
我正在 STM32F4 MCU 上实现一个虚拟 COM 端口。
MCU 没有可用的端点,所以我必须取消中断端点/通知元素。问题是 MCU 只能向 pc 发送一次消息,之后 pc 将无法收到。
设备 USB 描述符:
usb - 自定义 USB VID/PID - 使 Windows 7 和 8 自动选择 usbser.sys 驱动程序
我正在为带有STM32F070微控制器的 USB 设备开发固件。我使用STM32CubeMX生成了一个裸机(无操作系统)代码库,将设备设置为 USB CDC(通信设备类),以便 Windows 7、8 自动将其检测为 VCP(虚拟 COM 端口), 10. Driver Details 显示它正在使用 Windowsusbser.sys
驱动程序。
当我更改 USB 供应商 ID (VID) 或产品 ID (PID) 或制造商字符串时,Windows 10 设备管理器仍会快速将其检测为 USB 串行设备,但 Windows 7 或 8 不会。Windows 7 和 8 花费很长时间在 Windows 更新中搜索驱动程序,然后找不到驱动程序。
usbser.sys
当设备具有 USB VID、PID 和制造商字符串的供应商特定值时,如何修改设备固件/描述符以使 Windows 7 和 8 主机能够自动安装设备驱动程序?