USB 信号质量测试指南
USB 2.0 测试指南
完整的 USB 2.0 电气信号质量测试内容可以在 USB-IF 官网中找到:
主要有:
- 眼图
- 信号速率
- 上升下降时间
- 单调性测试
等测试项。
具体测试步骤根据相应测试仪器(示波器)或对应测试实验室的指南进行, 这里介绍如何让 K1 USB 控制器产生相应的测试波形。
USB2.0 的测试波形 (Test pattern) 选项有以下几种(具体可参考 USB 2.0 Spec 7.1.20 ):
- Test SE0 NAK
- Test J
- Test K
- Test Packet
- Test Force Enable
测试上升下降时间、眼图、抖动、其他动态波形规范等信号质量时选用的是 Test Packet 的 Test pattern,具体的测试包组成,参阅 USB 2.0 Spec 7.1.20 。
USB 2.0 Device 信号质量测试指南
Device 模式下,测试波形是支持以下两种方式,根据测试环境遍历任选其一即可:
- 上位机使用 xHCI Electrical Test Tool 配置测试波形: Host 安装 USB-IF 的标准测试工具 xHCI Electrical Test Tool ,向设备发送控制包 Set Feature(Test Packet) 实现。
- K1 使用 Linux DebugFS 进行配置: Device 端直接操作控制器,进行配置, K1 SDK 上是通过 linux debugfs 节点进行配置。
K1 USB2.0 OTG 控制器 Device 模式测试
测试时,请先保证 USB2.0 OTG 控制器工作在 Device 模式, 目前 Bianbu-Linux/Bianbu-Desktop 都开机启动 USB2.0 OTG 控制器作为一个 USB ADB 设备。
如果采用特殊固件,可以使用 gadget-setup.sh 脚本进行配置:
USB_UDC=c0900100.udc gadget-setup.sh adb
具体的该脚本 介绍可参考 USB Gadget 开发指南
上位机使用 xHCI Electrical Test Tool 配置测试波形
将 K1 开发板的 USB2.0 OTG 端口(原理图中的 USB0_DP/USB0_DN)通过 USB 线材和测试治具接入安装有 xHCI Electrical Test Tool 的上位机, 如图选择 VID/PID 0x361c/... 的 Device,选择 Device Command 发送 TEST_PACKET 选项,点击 EXECUTE 即可让 K1 USB2.0 OTG 控制器发送测试波形。

K1 使用 Linux DebugFS 进行配置
注:需要较新版本的 SpacemiT 内核才提供本节对 USB2.0 OTG 控制器 DebugFS 的支持
K1 开发板的 USB2.0 OTG 控制器在 Device 模式下,可通过 Linux DebugFS 节点直接操作控制器进行测试波形配置,具体操作如下:
-
确保开发板已启动并进入系统, USB2.0 OTG 控制器对应的 DebugFS 节点路径为
/sys/kernel/debug/usb/c0900100.udc/。 -
进入测试模式并发送测试波形:
echo test_packet > /sys/kernel/debug/usb/c0900100.udc/testmode
# 其他可选: test_j, test_k, test_se0_nak, test_force_enable -
查看当前高速测试模式状态:
cat /sys/kernel/debug/usb/c0900100.udc/testmode -
退出测试模式,恢复正常工作状态:
echo none > /sys/kernel/debug/usb/c0900100.udc/testmode
操作时,需将开发板的 USB2.0 OTG 端口通过 USB 线材连接至测试治具,执行上述命令后即可在测试治具端观测到对应的测试波形。
K1 USB3.0 DRD 控制器 Device 模式( HighSpeed 连接)测试
此测试只适用开发板 / 产品板有该 USB3.0 DRD 控制器做 Device 模式的规格 ,或者支持手动切换到 device 模式, 具体请参考 USB 通用开发指南 。
测试时,须保证 USB3.0 DRD 控制器工作在 Device 模式, 且测试夹具线材等为最大支持 USB2.0 High-Speed 规格,而不是 USB3.0 SuperSpeed 规格。
可以使用 gadget-setup.sh 脚本配置 USB3.0 DRD 控制器进入 Device 工作模式:
USB_UDC=c0a00000.dwc3 gadget-setup.sh hid
具体的该脚本介绍可参考 USB Gadget 开发指南