问题标签 [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.

0 投票
1 回答
1402 浏览

audio - 启用 USB 音频 2.0 类音频输入流

我一直在尝试在我的微控制器设备上设置 USB 音频输入流。我知道每个 USB 音频流都有两个备用设置;备用设置 0 是没有流可用的地方;备用设置 1 是当有可用的流时。

我已经设置了 USB 音频输出,所以我知道流描述符工作正常。显然,当主机告诉它何时有音频通过时,微控制器会调用 USB 中断来激活输出(告诉微控制器启用备用设置 1...)。但是,现在我很困惑如何启用 USB 音频输入端。我很困惑,因为显然主机没有告诉微控制器输入正在通过......而是设备告诉主机它正在发送数据。

如果有人可以让我了解如何正确启用输入流,那就太好了。我想知道我是否应该硬启用端点并以这种方式发送数据?如果需要,我可以提供更多代码,但我想这更像是一种思考类型/算法的问题方法。

这是我对流的备用设置的描述:

谢谢!

编辑- 只需阅读此来源:

“启用此配置后,将使用 bAlternativeSettings 等于 0 的前两个接口描述符。但是,在操作期间,主机可以发送一个 SetInterface 请求,该请求定向到接口一的请求,其中一个替代设置为启用另一个接口描述符。” -简而言之 USB

修订后的问题:如何发送 SetInterface 请求以使 USB 设备接受输入流?

新更新- 有没有办法可以通过描述符设置备用设置?我正在阅读有关流描述符的文章->“bmControls 字段包含一组位对,指示存在哪些控件以及它们的功能。” “D1..0 有效备用设置控制”、“D3..2 有效备用设置控制”。

解决了-
所以看起来我只需要在我的主机设备上打开一个音频应用程序来启用备用设置......我不知道是这种情况。

0 投票
2 回答
1230 浏览

audio - USB Audio Class 2.0 - 如何支持多种比特率/采样率

我有点困惑如何在 USB Audio Class 2.0 中添加对多比特率/采样率的支持。与 USB Audio Class 1.0(它为您提供添加多个速率等选项)相比,USB Audio Class 2.0 没有提供该选项。我将如何更改我的描述符?我在某处读到您使用更多替代设置,但我不知道这将有何帮助...

这是我的音频格式描述符:

谢谢!

0 投票
1 回答
1292 浏览

windows - Windows 10 HID 描述符错误

您好,我正在开发嵌入式 HID 设备,连接时出现错误:

此设备无法启动。(代码 10)

找到额外的最终集合或未找到最终集合。

这似乎是我的报告地图的问题,但根据 HID 工具它很好:

};

有任何想法吗?

0 投票
1 回答
1231 浏览

c# - C#如何从多个连接的同一个USB设备中找出特定的USB设备?

我有相同的 2 个罗技网络摄像头设备 (c920)。我想将这两个设备分配到 IN-Camera 和 OUT-Camera,因为我需要 IN 和 OUT 用户的事务。

现在,当我将其连接到 PC 时。VID、PID 相同,因为 OEM 也相同。

那么,每次将其插入 PC 或因任何原因重新启动 PC 后,我如何才能找出这 2 个设备。

所以我正在为这个 USB 设备寻找一些唯一的 USB 描述符。

需要帮助。

0 投票
0 回答
232 浏览

javascript - 如何通过节点获取 USB 设备总线类型 GUID 属性?

我正在尝试通过 NPM/Node 检查是否打开或关闭 USB 调试。一旦 Android 手机连接到我的系统并关闭 USB 调试,我需要向用户显示提示以在他的手机上启用 USB 调试。

根据我的研究,连接到我系统的每个设备(扫描仪/电话/USB)都有一个唯一的 GUID,它可以帮助我区分连接的设备。此外,我无法获取 USB 调试详细信息。请帮忙!

我想要此链接中的此属性

到目前为止我编写的代码是基于iSerialNumber但我想根据BUS-TYPE GUID来区分它。

这是我尝试过的最新代码,但它仅适用于三星设备:-

0 投票
2 回答
752 浏览

c# - Use NPM/Node for checking USB Debugging on Android Phone

I am trying to check if USB Debugging is turned on or off through NPM/Node. As soon as an android phone is connected to my system and USB Debugging is turned off, then i need to show a prompt to user to enable usb debugging on his phone.

According to my research, every device (Scanner/Phones/USB) connected to my system has a unique GUID which helps me to distinguish which device is connected. Further, i'm not able to fetch the usb debugging details. Please help!

Code which i have written so far is on the basis of iSerialNumber but i want to distinguish it on the basis of BUS-TYPE GUID.

});

I'm facing these issues.

0 投票
1 回答
136 浏览

usb - 请求描述符时 USB 集线器停止

我从一个 Atmel Start项目开始:

我的目标是将 USB 集线器连接到此演示板: SAM V71 Xplained Ultra 评估套件

问题是 atmel 不提供集线器驱动程序,并且他们没有回答我们关于此的问题。所以我一直在尝试根据他们提供的 msc 和其他驱动程序编写一个。

目前我在连接 USB 集线器时遇到问题。当我发送一个 DEVICE 类型的 GET_DESCRIPTOR 请求时,它返回一个 STALL。这对我来说似乎很奇怪,因为其他 USB 设备(例如闪存驱动器或 USB 到串行转换器)不会对相同的请求回复 STALL。事实上,闪存驱动器经历了整个枚举过程和 msc 安装,以便我可以成功读取和写入驱动器。

我正在通过管道处理程序的 STALL 处理部分中设置的单个断点检测失速。

我一直在阅读通用串行总线规范 Rev 2.0,但我找不到从集线器与其他设备读取描述符的方式之间的任何区别。而且我不明白为什么会发送一个 STALL 来回复 GET_DESCRIPTOR 请求。

谢谢

0 投票
0 回答
138 浏览

c - 编写自定义 USB 描述符

我正在开发具有 USB 3.0 连接性的 cypress CX3 芯片。我需要枚举 USB 以同时用作 UVC 类(视频类)和串行端口。

我已经看过与此相关的 USB 文档,但这些文档并没有清楚地解释如何编写一个。

CX3 SDK 提供帮助以生成 UVC 类的 USB 描述符,但没有提供有关如何将 COM 端口功能添加到其中的信息。

所以我的问题是你如何编写相同的描述符。

提前致谢。

0 投票
1 回答
1132 浏览

c# - 从 USB 设备描述符中获取数据

在我的项目(C#、WPF 应用程序)中,我的设备显示为 VCP。我需要连接到它。我正在使用 WMI 检测串行端口并按 VID 和 PID 过滤。它可以完成 90% 的工作。设备制造商对所有设备使用相同的 VID/PID 对。准确的模型在 USB 描述符中(设备描述符部分,属性 iProduct)。我在探索 WMI 的任何地方都找不到这个。

如何使用 .NET 访问 USB 描述符?在C# 中阅读 USB 描述符答案建议使用 WMI。在 WMI 设备描述中不是 USB 描述符。我不需要列出连接的 USB 设备,而是从 USB 设备描述符中读取特定数据。

0 投票
0 回答
677 浏览

windows - 重新枚举从旧固件升级到新固件且描述符发生变化的 USB 设备

如果我将 USB 设备连接到主机,然后使用新固件升级 USB 设备,并更改设备的描述符。主机将使用旧描述符。

我知道我可以通过删除设备的 Windows 初始化驱动程序等来强制设备重新枚举自身,或者我可以在描述符中碰撞 ProductId,设备将重新枚举。

Windows 兑现有关设备等的信息,因此 Windows 永远不会要求设备再次提供有关重新连接接口、配置、端点、HID 描述符等的信息。

在此处输入图像描述

idProduct - 更改它会重新枚举设备,因为 Windows 会认为它是不同的设备。

iSerialNumber - 更改此值将重新枚举,因为 windows 需要区分两个相同的 idProducts(连接的两个相同产品)

bcdDevice - 应该做重新枚举的技巧,但它不像 USB 规范中指定的那样工作。

我的问题是如何在不删除驱动程序等或更改 idProduct 或 iSerialNumber 的情况下强制重新枚举 USB 设备?

任何帮助将不胜感激...