簡介:
最近有部分客戶使用 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。
評論