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.

[参考译文] MSP430F5510:HID 测试失败:HID 获取/设置空闲测试

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/714825/msp430f5510-fails-the-hid-test-hid-get-set-idle-test

器件型号:MSP430F5510

你好

我正在使用 TI 的 USB 堆栈(MSP430USB 开发人员 Package_5_20_06_02)并将其配置为 USB 键盘。

我编译并运行了 TI 的示例代码- H8_Keyboard

它通过了所有 USB.org 第9章测试、但未通过 HID 测试上的 HID 获取/设置空闲测试。

它通过了以前版本的 USB 堆栈。 以下是测试输出的结果:

信息
开始时间 :2018年8月1日14:46:39日、星期三
信息
在接口0的报告描述符中找不到报告 ID
信息
获取/设置报告 ID 0的空闲测试。 将怠速率设置为7f
失败
(3.2.80)响应 GetIdle 请求返回的空闲率
必须与之前成功调用 SetIdle 设置的 udle 速率匹配。
信息

停止时间 :2018年8月1日14:46:45、星期三
信息
持续时间: 6秒。
信息
停止测试[ HID 类获取/设置空闲测试(配置索引0):
    数量:失败(1);中止(0);警告(0)]
我们将感谢您的任何帮助。
谢谢
PAS

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prakash、您好!
    您使用的硬件是 TI 的 EVM 板 MSP-TS430RGC64USB 还是您自己的定制板? 您还将 USB 设备连接到了哪个操作系统? 您还在运行第9章 HID 测试的哪个版本?

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

    感谢您的回复

    是的、我在我们的定制硬件和 EVM 板上都尝试过它。 它通过了第9章的测试、但未通过 HID 测试、空闲测试。 这是来自 USB.org 文档的测试摘录;

    文档标题:通用串行总线修订版本2.0
    USB 命令验证器合规性测试规范
    修订版本1.3

    我们在 Windows 7和 Windows 10 PC 上测试了该应用程序

    应用程序和文档可从以下位置下载: www.usb.org/.../USB2CV_1.5.6.0_Installer_-_x64_Release.exe


    3.5.2 HID 获取/设置空闲测试如果受测器件支持设置空闲命令、则此测试验证受测器件是否正确支持获取空闲命令。 用于测试的器件状态此测试在器件处于已配置状态时运行。 测试步骤概述测试软件执行以下步骤。 1.为要测试的配置发出有效的 Set Configuration 命令(除非它是其他速度配置描述符)。 2.发出有效的 Get Configuration 命令并验证配置是否已设置。 (如果我们不测试其他速度配置描述符) 3. 发出请求长度为9字节的有效 Get Configuration Descriptor。 4.发出有效的 Get Configuration Descriptor,其中包含步骤3中获取的描述符所请求的 wTotalLength 字段的长度。 5.对于在步骤4中获得的配置描述符,解析描述符以找到所有接口描述符。 6.对于每个接口描述符,检查 bInterfaceClass 是否= 0x03 (HHID_Class) 7. 对于在步骤6中找到的每个接口、执行以下描述符解析:报告描述符解析8。 为所测试的接口发出有效的 Get HID 描述符。 9.解析 HID 描述符以查找此接口的报告描述符的长度。 10.发出有效的获取报告描述符请求,请求的长度为步骤9中请求的长度。 11.计算报告描述符中的项目标签数。 它必须至少为1。 12.对报告描述符中的输入标签数量进行计数。 13.在报告描述符中计算报告 ID 的数量。 14。如果没有报告 ID、则使用值0x7F 运行获取/设置空闲测试如果有报告 ID、则使用值0x00、0x7F 和0xFF 运行获取/设置空闲测试。 获取/设置空闲测试15。 针对正在测试的报告 ID 和持续时间发出有效的设置空闲请求。 16.为被测试的报告 ID 发出有效的 Get Idle 请求。 17。如果两个请求都成功完成、请检查 Get Idle Request 是否返回已设置的正确值。 18。针对每个可能的器件配置重复此测试。 对于支持 HS 的器件、它在器件同时以 FS 和 HS 运行的情况下运行。
    结果解释测试将所有结果转录到基于文本的日志文件中。 如果:设备枚举失败、则测试失败、遵循本规范中所述的方法。
    有效的 get 描述符命令因任何原因失败。 有效的设置地址命令因任何原因失败。 有效的设置配置命令因任何原因失败。 有效的 get 配置命令因任何原因失败。 有效的 Get HID 描述符命令因任何原因失败。 有效的 Get HID 报告描述符命令因任何原因失败。 设置的空闲值与 Get IDLE 返回的值不匹配。

    谢谢

    Prakash
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prakash、您好!
    MSP430 USB 堆栈不支持设置或获取空闲特性。 当主机向 MSP430 USB HID 器件发送 SetIdle 命令时、MSP430首先使用 NAK 进行响应、然后向主机发送 STALL。

    这不会影响 H8_Keyboard 应用程序的功能。
    不知道为什么第9章测试在一个版本的堆栈上通过而在另一个版本上失败。

    此致、
    Arthi