STM32 OTG模块作为USB设备详解
需积分: 16 33 浏览量
更新于2024-07-17
收藏 704KB PDF 举报
"STM32 OTG IP介绍(下)OTG模块作为USB设备"
STM32 OTG(On-The-Go)模块是一个高度集成的USB控制器,能够实现设备在USB主机和设备模式之间的切换。在本文档中,主要讨论了OTG模块作为USB设备时的各种情况和工作状态。
首先,OTGB设备是OTG模块的默认状态,当连接B-side(下游)电缆时,它作为USB设备。B-side电缆的连接使得OTGB器件的角色固定,不会进行主机与设备的角色切换。
OTGA设备则是在执行Host Negotiation Protocol (HNP)之后,从原本的主机角色切换到设备角色。这种情况下,OTGA器件连接的是A-side(上游)电缆,但通过HNP协议,它可以成为USB设备。
B器件是指连接B-side电缆且HNPCAP位被清零的设备,这意味着它的角色不会改变,始终作为USB设备。
"仅作为USB设备"的情况发生在FDMOD被置位时,强制OTG模块保持在设备角色,此时ID引脚的信号被忽略,不参与角色判断。
当OTG_FS模块作为"device only"连接时,PA9引脚用于监测Vbus电源,检测设备是否与主机断开。如果禁用NOVBUSSENS,PA9可以作为普通I/O口,此时假设VBUS始终有效。D+/D-数据线不需要串联电阻,而内部的专用PLL为USB设备模块提供48MHz时钟。
在USB设备的不同状态下,有以下几种情况:
1. 供电状态:当Vbus检测到有效电压时,设备进入供电状态,自动启用D+的上拉电阻,向主机发送"设备连接"信号,并产生"会话请求"中断。如果Vbus电压下降,设备会关闭D+的上拉,触发"会话结束"中断。
2. 默认状态:设备期望接收SET_ADDRESS命令,新地址将写入设备配置寄存器DAD@OTG_FS_DCFG。之后,设备将以新地址响应主机的后续通信。
3. 软断开状态:通过设置SDIS@OTG_FS_DCTL可移除D+的上拉,即使电缆仍连接,主机也会触发"设备断开连接"中断。
4. 挂起状态:当检测到3ms的空闲状态,产生早期挂起中断(ESUSP@OTG_FS_GINTSTS),3ms后确认挂起状态(USBSUSP@OTG_FS_GINTSTS)。挂起状态由SUSPSTS@OTG_FS_DSTS标志位表示。退出挂起状态需要设备应用置位WKUPINT@OTG_FS,触发唤醒中断。
这些状态和功能的详细理解对于开发基于STM32 OTG IP的USB设备应用至关重要,它们确保了设备能够正确响应主机操作并管理电源状态,从而实现稳定可靠的USB通信。
2019-09-15 上传
2019-09-12 上传
2019-06-19 上传
2021-09-03 上传
2023-02-22 上传
2014-01-08 上传
weixin_38743481
- 粉丝: 696
- 资源: 4万+
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章