Menu
- USB Command Verifier (USB3CV Tools) for USB 3 controllers Before using the command verifier tools, make sure that you have an application running with the USB device class that you are going to test. For example, if you want to test the behavior of the USB MSC device class, create a µVision project containing this class.
- Dismiss Join GitHub today. GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
- USB Command Verifier (USB3CV Tools) for USB 3 controllers Before using the command verifier tools, make sure that you have an application running with the USB device class that you are going to test. For example, if you want to test the behavior of the USB MSC device class, create a µVision project containing this class.
USB 3 Command Verifier (USB3CV) is the official tool for USB 3 Hub and Device Framework testing. All USB 3.1 peripherals are required to pass the Device Framework tests in order to gain certification. The USB3CV tool includes the xHCI Compliance Drivers for use with the USB3CV. In order to use USB3CV, User Account Control (UAC) must be turned off. There’s a free tool called USB3CV from USB-IF. It validates basic USB compliance, and tests all these fine points. It validates basic USB compliance, and tests all these fine points. Lukevalenty 2018-11-28 03:00:36 UTC #17.
USB drivers need to be tested against the requirements of the USB standard. The following tools are provided by the USB Implementers Forum:
- USB Command Verifier (USB20CV Tools) for USB 2.0 controllers
- USB Command Verifier (USB3CV Tools) for USB 3 controllers
![Xhci Xhci](/uploads/1/1/8/2/118203469/272488199.png)
Before using the command verifier tools, make sure that you have an application running with the USB device class that you are going to test. For example, if you want to test the behavior of the USB MSC device class, create a µVision project containing this class. For more information, refer to the MDK Middleware documentation.
Then, follow these steps to run the verification tools on a Windows PC:
- Install the appropriate USB Command Verifier tool and reboot your PC.
- Connect your device to the PC.
- Open the Windows Device Manager and select View - Devices by connection to view the USB host controllers available on the PC:
- Switch for mac osx. Expand the entry and verify the controller properties to which your device is connected. Remember the location of the controller that will be tested:
- Run the USB Command Verifier tool and select the controller according to the location found in the previous step:
- Note
- Do not test the controller that is connected to the keyboard or mouse. All devices connected to the tested controller will stop working.
- When selecting the Compliance Test mode all test cases will run. In the Debug mode, you can choose individual test cases by selecting the related check boxes. Test reports are saved automatically in the Reports directory.
The following tests should be executed for:
- USB Mass Storage Class: Chapter 9 Tests + MSC Tests
- USB HID class: Chapter 9 Tests + HID Tests
- Any other class (CDC, ADC, etc.): only Chapter 9 Tests
Chapter 9 Tests refers to the USB Device Framework chapter of the USB specification. Every USB peripheral is required conform to this test which must be passed. Passed tests offer a good level of confidence that there are no major flows in the USB device drivers.
The USB Command Verifier does not test how well a device behaves under stress. To get a better confidence, conduct stress tests of all available examples:
Relevant Chapters: andGet It Right: Meet System and App Store RequirementsConfiguring your app properly is an important part of the development process. Relevant Chapters:, andCommon Behaviors Make Apps CompleteDuring the design phase of creating your app, you need to think about how to implement certain features that users expect in well-formed Mac apps. Integrating these features into your app architecture can have an impact on the user experience: accessibility, preferences, Spotlight, services, resolution independence, fast user switching, and the Dock. Mac apps use a structured directory called a bundle to manage their code and resource files. Mac apps for designers. Enabling your app to assume full-screen mode, taking over the entire screen, provides users with a more immersive, cinematic experience and enables them to concentrate fully on their content without distractions.
- USB MSC: Send a long file to the mass storage device and read it back and compare the output.
- USB HID: Use the HID Client (available in the MDK installation directory below ARMUtilitiesHID_ClientRelease) to see how the device works under stress.
- USB CDC (Virtual COM): Send a large file on the Virtual COM port and capture it on the UART and vice versa. Compare sent and received files for both directions.
- USB ADC: Play a sound file form the board for some time and listen for any sound distortion. Record sounds coming from a microphone and verify the recorded file on the USB Host.
After the completion of the tests, click Exit to switch back the USB stack. Otherwise, the USB stack will stay in test mode.
USB 2.0 Specification Chapter 9
When testing a USB device or hub you should at least test USBCV. It will automatically test the device framework and descriptor. USBCV is free of charge and is a very easy to use application so there is nothing from stopping you running these tests. There is a USB20CV and a USB30CV available on the USB.ORG that is updated on a regular base. Read the installation guide carefully before you start testing.
Here some common failures:
Not using a hub with port power switching
When running the USBCV Chapter 9 test it's mandatory to use hubs that switch their Vbus.
http://compliance.usb.org/index.asp?UpdateFile=USBCV&Format=Standard#20
It is however very hard to get hold of these hub there now a days most hubs keep Vbus on at all times.
When using these kind of hubs it will add an additional test to USBCV. It will test if a device can connect within 1 second after Vbus is on.
This test cannot be done when using a hub that has Vbus always on. It is a common failure for many devices that they are unable to connect within this 1 second so be sure it's tested.
The bcdUSB field must be 2.0 not 1.1
A common mistake is that people assume that USB 1.1 stand for full and low speed and USB 2.0 for high speed only. This is not true there the USB 2.0 specification includes low, full and high speed. So also low and full speed are USB 2.0 and therefore the bcdUSB field must be 2.0 also for those products not 1.1.
When testing a USB device or hub you should at least test USBCV. It will automatically test the device framework and descriptor. USBCV is free of charge and is a very easy to use application so there is nothing from stopping you running these tests. There is a USB20CV and a USB30CV available on the USB.ORG that is updated on a regular base. Read the installation guide carefully before you start testing.
Here some common failures:
Not using a hub with port power switching
When running the USBCV Chapter 9 test it's mandatory to use hubs that switch their Vbus.
http://compliance.usb.org/index.asp?UpdateFile=USBCV&Format=Standard#20
It is however very hard to get hold of these hub there now a days most hubs keep Vbus on at all times.
When using these kind of hubs it will add an additional test to USBCV. It will test if a device can connect within 1 second after Vbus is on.
This test cannot be done when using a hub that has Vbus always on. It is a common failure for many devices that they are unable to connect within this 1 second so be sure it's tested.
The bcdUSB field must be 2.0 not 1.1
A common mistake is that people assume that USB 1.1 stand for full and low speed and USB 2.0 for high speed only. This is not true there the USB 2.0 specification includes low, full and high speed. So also low and full speed are USB 2.0 and therefore the bcdUSB field must be 2.0 also for those products not 1.1.
Run the USBCV Class tests
If a device is MSC, HID, OTG, UVC, HUB run also the appropriate tests within USBCV,
USB 2.0 device should also pass USB30CV
On top of passing USB20CV a USB 2.0 device must also pass USB30CV.
![Usb3cv Usb3cv](/uploads/1/1/8/2/118203469/990942429.jpg)