USB应用指南
简介
USB 位于HPSYS。芯片集成了一路全速(FS)USB2.0Host/Device接口,符合USB2.0的协议规范,具有如下功能:
软件可配置的端点设置,支持挂起/恢复
支持动态FIFO大小
支持会话请求协议和主机协商协议
支持全速以及慢速模式
片内集成USB2.0FSPHY
拥有ep0~ep7 8 个通道
USB-SLAVE 定义与应用场景
USB-SLAVE(从设备)是指在 USB 通信中,设备作为被动端响应主机(Host)的请求,完成数据的收发和控制。常见的 USB-SLAVE 应用场景包括:
外部存储设备(如 U 盘、移动硬盘)
USB 键盘、鼠标等人机交互设备
摄像头、打印机等外设
工业控制、数据采集终端
音频、视频传输设备
在这些场景中,USB-SLAVE 设备通过标准的 USB 协议与主机进行通信,实现即插即用、跨平台的数据交换和控制功能。
目前在平台中已经调试完成的应用场景如下:
MSTORAGE
CDC-VCOM
printer
USB-HOST 定义与应用场景
USB-HOST(主机)是指在 USB 通信中,设备作为主动端发起对从设备(Device)的控制和数据传输。主机负责总线管理、设备枚举、供电和数据交换等任务。
常见的 USB-HOST 应用场景包括:
连接 U 盘、移动硬盘等存储设备,实现数据读写
连接 USB 键盘、鼠标等外设,实现人机交互
连接打印机、摄像头等设备,扩展系统功能
工业控制系统中作为主控端,管理多个 USB 设备
车载、医疗等嵌入式系统的外设扩展
在这些场景中,USB-HOST 通过标准 USB 协议管理和访问各种 USB 从设备,实现灵活的外设扩展和数据交互。
从机配置
使能USBD slave设备 “BSP_USING_USBD”

使能对应的USB 的应用设备

修改usbd的硬件ID

主机配置
使能USBD host设备 “BSP_USING_USBH”

使能对应的USB 的应用设备

目前在平台中已经调试完成的应用场景如下:
udisk
RNDIS
主要特性
56x/52x芯片拥有ep0~ep7 8个通道,其中ep2~ep4只支持rx(即host只支持IN,device只支持OUT),ep5~ep7只支持 tx(即 host 只支持OUT,device只支持IN);
55x芯片不支持DMA模式;只支持device 模式
58x芯片 ep0~ep7 8个通道都支持IN与OUT;支持高速(HS)、全速模式(FS)
USB使用注意事项
由于USB使用时候usb的频率必须在60MHz下,因此usb在使用的时候不能降频不能睡眠。
//禁止睡眠
rt_pm_request(PM_SLEEP_MODE_IDLE);
//退出禁止睡眠
rt_pm_release(PM_SLEEP_MODE_IDLE);
//禁止降频
rt_pm_hw_device_start();
//退出禁止降频
rt_pm_hw_device_stop();
由于目前USB slave模式下在拔出的时候没有拔出中断,因此需要外部VBUS分压到芯片一个IO口来作为USB的插拔检测。