NXP LPC5516 在 USB CVTest 的一致性測試

簡介:

最近有部分客戶使用 LPC5516/28 的 SDK 默認例程無法通過 USB CVTest 一致性測試。而在 SDK 例程中,需要通過修改宏定義,及修改部分 code,使 USB 設備設置為測試模式才能通過 USB CVTest 測試。

 
一、CVTest

CVTest是 USB-IF 提供的用於執行 USB 設備和主機的一致性測試的軟體工具。它包含一系列的測試用例,用於驗證 USB 設備和主機是否符合 USB 規範和標準的要求。

測試用例涵蓋了 USB 規範中定義的各種功能和特性,包括電氣特性、傳輸協議、控制傳輸、批量傳輸、中斷傳輸等。測試用例會模擬各種場景和操作,以確保 USB 設備和主機在各種情況下的正確性和穩定性。

 

下面便以 NXP LPC5516 SDK 2.14.0 USB 鼠標鍵盤例程,修改部分代碼以通過 CVTest Chapter 9 測試。

在使用默認例程的情況下,進行Chapter 9 測試,會出現如下錯誤:




二、SDK usb_device_hid_mouse 例程

在該例程中,只需修改宏定義 USB_DEVICE_CONFIG_COMPLIANCE_TEST 為 1U,設置為測試模式即可通過 CVTest 測試。





但由於該例程未設置 Remote wakeup 相關代碼,測試時會顯示 The device does not support remote wakeup,關於這部分測試是跳過的。



若需要這部分的測試通過報告,可以使用 usb_suspend_resume_device_hid_mouse 例程進行測試。

 


三、SDK usb_suspend_resume_device_hid_mouse 例程

在該例程,由於缺少了測試模式需要的 QualiferDescriptor 和 GetHidDescriptor 相關代碼,除了需要修改宏定義 USB_DEVICE_CONFIG_COMPLIANCE_TEST 為 1U 使設備進入測試模式外,還需添加相關代碼如下:







添加後進行 chapter 9 測試,測試通過,結果如下,



Remote wakeup 測試通過,測試結果如下:



四、總結

       通過CVTest進行USB一致性驗證測試,可以確保USB設備和主機符合USB規範和標準的要求,提高設備的兼容性和穩定性。許多 USB 相關的客戶同樣需要進行 CVTest,通過設置宏定義 USB_DEVICE_CONFIG_COMPLIANCE_TEST 為 1U,能使設備進入測試模式,方便客戶進行並通過 CVTest。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

評論