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: Fails the HID TEST: HID Get/Set Idle test

Part Number: MSP430F5510


Hello

I am using TI's USB stack (MSP430USBDevelopersPackage_5_20_06_02) and configured it as a USB keyboard.

I compiled and ran TI's example code - H8_Keyboard

It passes all USB.org chapter 9 test but fails the HID GET/SET IDLE test on HID test.

Using the previous version of USB stack it passes. Below are the result of test output:

INFO
Start time: Wed Aug  1 14:46:39 2018
INFO
No report IDs found in report descriptor for Interface : 0
INFO
GET/SETIdle test for report ID 0. Setting Idle rate to : 7f
FAIL
(3.2.80) The idle rate returned in response to a GetIdle request
must match the udle rate set by a successful previous call to SetIdle.
INFO

Stop time: Wed Aug  1 14:46:45 2018
INFO
Duration:  6 seconds.
INFO
Stopping Test [ HID Class GET/SET Idle Test (Configuration Index 0):
     Number of: Fails (1); Aborts (0); Warnings (0) ]
Any help will be appreciated.
Thanks
Pas

  • Hello Prakash,
    Is the hardware you are using TI's EVM board MSP-TS430RGC64USB or your own custom board? Also which operating system did you connect the USB device to? Also which version of the Chapter 9 HID test are you running?

    Regards,
    Arthi
  • Hi Arthi

    Thanks for prompt reply

    Yes, I tried it both on our custom hardware and the EVM board. It passes the Chapter 9 test but fails the HID Tests, Idle test. This is extract of the test from usb.org document;

    Title of document: Universal Serial Bus Revision 2.0
    USB Command Verifier Compliance Test Specification
    Revision 1.3

    We tested the app on both Windows 7 and Windows 10 PC

    The application together with doc can be downloaded from here: www.usb.org/.../USB2CV_1.5.6.0_Installer_-_x64_Release.exe


    3.5.2 HID Get/Set Idle Test This test verifies that the device under test correctly supports the Get Idle command if it supports the Set Idle command. Device States For Test This test is run with the device in the Configured state. Overview of Test Steps The test software performs the following steps. 1. Issue a valid Set Configuration command for the configuration to be tested (unless it is an other speed configuration descriptor). 2. Issue a valid Get Configuration command and verify that the configuration has been set. (if we are not testing an other speed configuration descriptor) 3. Issue a valid Get Configuration Descriptor with a requested length of 9 bytes. 4. Issue a valid Get Configuration Descriptor with a requested length of the wTotalLength field from the descriptor obtained in step 3. 5. For the configuration descriptor obtained in step 4 parse the descriptor to locate all interface descriptors. 6. For each interface descriptor check to see if bInterfaceClass == 0x03 (HID_CLASS) 7. For each interface found in Step 6 the following descriptor parsing is performed: REPORT DESCRIPTOR PARSING 8. Issue a valid Get HID descriptor for the interface being tested. 9. Parse the HID descriptor to find the length of the report descriptor for this interface. 10. Issue a valid Get Report Descriptor request with a requested length from step 9. 11. Count the number of item tags in the Report Descriptor. It must be at least 1. 12. Count the number of input tags in the Report Descriptor. 13. Count the number of report Ids in the Report Descriptor. 14. If there are no report Ids the GET/SET Idle test is run with value 0x7F If there are report Ids the Get/Set Idle test is run with values 0x00, 0x7F, and 0xFF for each report Id for an INPUT. GET/SET IDLE TEST 15. Issue a valid Set Idle request for the Report ID and duration being tested. 16. Issue a valid Get Idle request for the Report ID being tested. 17. If both requests complete successfully check that Get Idle request returns the correct value that was set. 18. The test is repeated for each possible device configuration. For HS capable device it is run with the device operating at both FS and HS.
    Results Interpretation The test transcribes all results to a text based log file. The test fails if: Device enumeration fails following the method described In this specification.
    Valid get descriptor commands fail for any reason. Valid set address commands fail for any reason. Valid set configuration commands fail for any reason. Valid get configuration commands fail for any reason. Valid get HID descriptor commands fail for any reason. Valid get HID report descriptor commands fail for any reason. Set IDLE values do not match those returned by Get IDLE.

    Thanks

    Prakash
  • Hello Prakash,
    The MSP430 USB stack does not support the Set or Get IDLE feature. When the host sends the MSP430 USB HID device the SetIdle command, the MSP430 responds first with NAKs and then it sends a STALL to the host.

    This should not effect the functionality of the H8_Keyboard application.
    Not sure why the Chapter 9 tests are passing on one version of stack and failing on another.

    Regards,
    Arthi

**Attention** This is a public forum