【STM32U5A5ZJ开发板】USB设备及VCP通讯测试
[复制链接]
STM32U5A5ZJ 上的USB是自带PHY的OTG USB设备,不但具有电源管理还具有设备管理功能,使用的接口也是Type C接口。
USB设备使用较其它的串行总线要复杂的多,通讯过程中除了初始化、枚举登记外。还需要异步的进行通讯过程。所以ST公司为了配合开发推出了配套的HAL和LL库的相关函数。尤其在操作系统的情况下更为复杂,但同时RTOS也为编程和使用带来便利。本次测试RTOS使用THREADX和配套的USBX、USBPD中间件。
1、USB设备驱动设置
USB的设备设置有两部分组成,电源管理和USB通讯引脚设置。UCPD和USB_OTG_HS两组设置。
UCPD1是ST工具包指定的OTG电源管理的相关引脚设置。主要是配合USBPD中间件地。
USB_OTG_HS是USB设备驱动地相关设置,也是需要需要配合USBX设置地。设置需要参考相关例程。
这个两组设置都是ST驱动必须的设置。
2、USBX设置
在选取THREADX支持后如果需要USB设备的支持就需要使用配套的USBX库的支持,USBX是THREADX配套的USB设备的管理库,具有多种的USB设备支持。在本次的测试使用CDC_ACM支持,这个设备就是USB转串口设备。转换的串口只使用上位机的驱动就可以工作。
可以参考上图的设置。
3、USBPD设置
USBPD是USB电源管理中间件用来简化USB的电源管理,同时提供驱动。
具体的设置参考相关的例程(Ux_Device_CDC_ACM)。
4、程序代码及使用
程序代码有两部分组成。应用和设备管理及初始化。
设备程序化程序可以参考相关例程,为固定的格式无需修改就可以使用。
这个程序将内部将UART1和USB VPC相关联,这样可以将UART的编程转换成VPC了。
测试过程
插入USB TypeC 线之后就可以枚举出COM8和COM5两个串口,COM8是调试的UART1串口,USB5就是本次OTG的VCP串口。
1、通过COM5发出一个消息。
可以在COM8上面收到该消息。
在COM8上发消息也可以在UART1的COM8串口上收到。
|