[讨论] 【STM32U5A5ZJ开发板】USB设备及VCP通讯测试

bigbat   2024-3-13 11:04 楼主

STM32U5A5ZJ 上的USB是自带PHY的OTG USB设备,不但具有电源管理还具有设备管理功能,使用的接口也是Type C接口。

image.png  

USB设备使用较其它的串行总线要复杂的多,通讯过程中除了初始化、枚举登记外。还需要异步的进行通讯过程。所以ST公司为了配合开发推出了配套的HAL和LL库的相关函数。尤其在操作系统的情况下更为复杂,但同时RTOS也为编程和使用带来便利。本次测试RTOS使用THREADX和配套的USBX、USBPD中间件。

1、USB设备驱动设置

USB的设备设置有两部分组成,电源管理和USB通讯引脚设置。UCPD和USB_OTG_HS两组设置。

image.png   UCPD1是ST工具包指定的OTG电源管理的相关引脚设置。主要是配合USBPD中间件地。

image.png   USB_OTG_HS是USB设备驱动地相关设置,也是需要需要配合USBX设置地。设置需要参考相关例程。

这个两组设置都是ST驱动必须的设置。

2、USBX设置

在选取THREADX支持后如果需要USB设备的支持就需要使用配套的USBX库的支持,USBX是THREADX配套的USB设备的管理库,具有多种的USB设备支持。在本次的测试使用CDC_ACM支持,这个设备就是USB转串口设备。转换的串口只使用上位机的驱动就可以工作。

image.png   可以参考上图的设置。

3、USBPD设置

USBPD是USB电源管理中间件用来简化USB的电源管理,同时提供驱动。

image.png   具体的设置参考相关的例程(Ux_Device_CDC_ACM)。

4、程序代码及使用

程序代码有两部分组成。应用和设备管理及初始化。

image.png   设备程序化程序可以参考相关例程,为固定的格式无需修改就可以使用。

这个程序将内部将UART1和USB VPC相关联,这样可以将UART的编程转换成VPC了。

测试过程

插入USB TypeC 线之后就可以枚举出COM8和COM5两个串口,COM8是调试的UART1串口,USB5就是本次OTG的VCP串口。

image.png  

1、通过COM5发出一个消息。

image.png  

可以在COM8上面收到该消息。

image.png  

在COM8上发消息也可以在UART1的COM8串口上收到。

 

回复评论 (2)

这是将USB直接虚拟成串口了?直接USB设备就能识别通信吧

在爱好的道路上不断前进,在生活的迷雾中播撒光引
点赞  2024-3-14 09:03
引用: 秦天qintian0303 发表于 2024-3-14 09:03 这是将USB直接虚拟成串口了?直接USB设备就能识别通信吧

这是将USB设备转换成串口设备,通讯两端都是串口,转换的过程中的驱动就是一个桥梁。不然就需要自己编写私有USB驱动了,这样就增加了编程的复杂性。

点赞  2024-3-14 11:06
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复