|
STM32的高速USB信号质量测试实现9 `( w' `/ O: D" L/ @ 前言 STM32提供了丰富的接口资源,其中包括USB FS、USB HS、OTG FS和OTG HS。对于高速USB,由于信号速率相对较高。在开发过程中,会对高速USB信号质量进行测试,例如运用广泛的眼图测试。STM32的高速USB/OTG IP遵循USB 2.0规范,能够配合实现眼图等信号质量测试项。本文中,首先介绍眼图等信号质量测试的实现框架,然后以Cube软件包中USB 设备类的HID例程为基础,提供软件层面的修改。最后通过USB官方提供的HSETT工具,一步一步呈现如何使STM32实现的USB设备进入测试模式,以便使其输出用以获取眼图等测试项的信号。' c2 c+ a7 O6 T. r 一 信号质量测试背景介绍1 b' O) v3 Y8 b: G4 U9 ~ 高速USB信号质量测试,实现框架如下图。
3 T) b6 y" o; |5 F% W2 [- b 根据测试需要,利用电脑端测试软件工具HSETT,使STM32实现的USB设备进入相应的测试模式。然后利用示波器抓取测试信号,进行信号质量分析。本文中不包含示波器抓取信号的实现描述,读者可以通过文末的参考文档进行了解。 其中,HSETT全称High-speed Electrical Test Tool,是USB官方组织发布的一个发包工具(官网www.usb.org下载)。* J/ H/ \2 i$ ~ STM32的高速USB IP遵循USB2.0规范,支持多种测试模式,包括Test_J模式、Test_K模式、Test_SE0_NAK模式、Test_Packet模式和Test_Force_Enable模式。更多测试模式内容的介绍请参考USB2.0规范。 更多内容请参考对应型号的参考手册。其中,如果是进行眼图测试,需要进入Test_Packet测试模式。 二 软件层面支持! |6 S H% Y3 `6 k 本文中实现环境如下: 硬件平台: STM32F469I-EVAL6 }1 W" r! `* ]7 n0 [1 I Cube软件包版本: v1.16.0# E: o; Y/ n2 _: i; w HID例程文件路径 :0 v- K' f2 O# l7 z; c/ U! E; U STM32Cube_FW_F4_V1.16.0\Projects\STM32469I_EVAL\Applications\USB_Device\HID_Standalone.1 ~5 a4 w( \5 M& b6 ` HS Electrical Test Tool (HSETT), ]" F v$ T7 A% J' L* t 通过上述介绍可以了解到高速USB的信号质量测试,需要USB器件进入测试模式,提供符合测试的信号输出。基于此,下面列出例程中添加及修改处,以实现HID设备对测试模式的支持。5 ?( L- X" \( ~% s+ V
5 T1 S: C' |1 j) N7 B9 f, a7 X 完成上述修改,编译生成执行文件,并加载到STM32F469I-EVAL板。注: 工程中包含三个子工程,分别是STM32469I-EVAL_USBD-FS、STM32469I-EVAL_USBD-HS-IN-FS和STM32469I-EVAL_USBD-HS,选择STM32469I-EVAL_USBD-HS实现高速USB的HID设备功能。 % ]$ p5 z X9 {4 G3 C( c2 |$ t 三 测试模式进入 利用USB数据线将STM32F469I-EVAL板上的高速USB口与电脑连接。如果HID例程运行正常,电脑会对将其识别为HID设备,可在电脑的设备管理器中查看,如下图。% j2 U3 Y! r3 h+ B1 a& \
$ z6 F7 n6 N7 J k6 K 打开HS Electrical Test Tool,出现主控制器选择界面,如下图。界面中内容及出现情况与电脑有关,如果电脑仅包含一个主控制器,不会出现选择界面。注意HSETT工具用于USB2.0,如果电脑只有USB3.0主控制器,会出现无法找到USB2.0主控制器的提示,并且不能使用。& |2 I4 X9 w2 S- D
9 `* j' ?4 b8 |! F4 w 从设备管理器进入,查看主控制器属性中的位置路径。查找与HID设备的位置路径关联的主控制器,如下图(主控制器的总线、设备和功能号信息,在下图界面的“常规”标签中)。
根据图中信息确定选择 “PCI总线0、设备29、功能7”,出现选择测试类型的界面,如下图。/ @7 Q: N) R i' }. W: g* i
本文中介绍USB设备的测试实现。选择 “Device”,单击“TEST”,进入测试模式的界面,如下图。
界面中列出了挂载在主控制器上的USB设备硬件ID,选择对应的设备。(实验时,对应USB主控制器上只挂载了STM32实现的HID设备。)3 [: s6 ~) v* B3 X& ?) h4 D 点击 “Enumerate Bus”重新与设备建立枚举。枚举成功出现如下提示。
HSETT提供了多种设备命令,如下图。为了实现眼图测试,选择“TEST_PACKET ”,单击“EXECUTE”,向USB设备发送设置Test_Packet模式的命令。
- {; x7 |2 h) s( T1 V 发送成功,并被USB设备正确响应后,出现如下提示。然后可以单击“Return To Main” “Exit”退出HSETT,释放主控制器的控制。
' S# h& G# b, N# A2 S$ A; P STM32 高速USB进入测试模式,通过USB接口连续循环地向外输出测试需要的信号。在进入测试模式后,信号的发送不受USB数据线连接的影响,断开USB数据线,依然会发送信号,以便获取眼图等测试信号。4 }0 [) C. e' I ! [- f2 Q2 S" |# v 四 小结 本文简略的从STM32角度,描述了高速USB信号质量测试中,涉及到的修改及实现。对于具体的测试及分析,不在本文介绍范围内,读者可以通过提供的参考文档Universal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure,更加全面的了解信号质量测试的步骤及实现。另外,文件中以HID设备为例,但需知测试实现与哪种类型USB设备无关。 0 l, {% _3 [3 _9 e0 V9 x7 s' Q 参考文档: Universal Serial Bus Specification v2.0' Q% ] F8 }) Y: _3 Q: N+ p Universal Serial Bus Implementers Forum Device Hi-Speed Electrical Test Procedure For Agilent Infiniium v1.2! N. ^+ ]# x2 w' p' j+ K3 N, V Universal Serial Bus Implementers Forum Device High-speed Electrical Test Procedure For Tektronix v1.5 Universal Serial Bus Implementers Forum Full and Low Speed Electrical and Interoperability Compliance Test Procedure. f1 `+ h: k% s' @& _* r5 A* F RM0386 Reference Manual STM32F469xx and STM32F479xx advanced ARM®-based 32-bit MCUs# C: d N) u { | - P/ ]- s6 B' o1 R" m & I- o0 _/ L/ p! X) v X- e : P9 M$ D) l3 J4 |0 T 文档下载1>> 文档下载2>> 更多实战经验>> ! [( c* Z; O; @3 N0 j7 Z |
| 签到 |
| 签到 |
最全USB HID开发资料,悉心整理一个月,亲自测试
【源码】STLINK-V3MINI 高速USB仿真器,成功改刷【高速CMSIS-DAP】
STM32 USB CDC 虚拟多串口
实战经验 | 选择USBX模块生成USB CDC ACM无PD的项目
STM32 USB HID键盘例程
刘氓兔的杂谈【001】-片上USB 高速PHY
【经验分享】在进行 USB CDC 类开发时,无法发送 64整数倍的数据
在线直播|无需编写任何代码即可在STM32上实现USB-C Power Delivery
圈圈发布USB图书第二版有感,以及分享一些我学习USB过程...
USB Audio设计与实现
微信公众号
手机版