USB OTG主机模式详解:OTG_IP与供电管理

需积分: 10 2 下载量 101 浏览量 更新于2024-07-18 收藏 782KB PDF 举报
"本文主要介绍了OTG_IP在USB中的应用,包括OTG模块作为USB主机的四种情况,以及OTG_FS模块作为'hostonly'连接的特性。内容涉及OTG_A和OTG_B器件的角色切换,USB主机的不同状态,以及在不同情况下的电源管理与中断处理机制。" 在USB OTG (On-The-Go)技术中,OTG模块能够充当USB主机或设备,实现了设备之间的双向通信。OTG_IP的介绍分为三部分,这里主要关注其作为USB主机的功能: 1. **OTGA主机** - 当OTG器件连接了A-side电缆时,它会默认作为主机,此时需要提供5V电压。 2. **OTGB主机** - OTGB器件原本是设备角色,但在执行Host Negotiation Protocol (HNP)后,可以切换到主机角色。 3. **A器件** - 连接A-side电缆,且HNPCAP位被清零,固定为主机角色,不考虑ID信号,同样需要提供5V电压。 4. **仅作为USB主机** - FHMOD被置位,强制设备始终处于主机状态,ID信号被忽略,5V供电也是必要的。 OTG_FS模块作为"hostonly"连接时,由于芯片不支持内部5V输出,需依赖外部电源。GPIO用于控制电压输出和检测过流,PA9引脚用于监测VBUS供电。在HNP和SRP(Session Request Protocol)启用时,PA9必须连接到Vbus以监控电压;否则,当NOVBUSSENS设置时,PA9可作为普通GPIO使用,假设VBUS始终有效。 USB主机的工作状态涉及到多种中断情况: - **给端口供电** - 通过GPIO控制外部chargepump供电,并设置OTG_FS_HPRT中的PPWR位。 - **取消Vbus供电** - 清除PPWR位以断开供电。 - **有效总线电压** - 当Vbus电压低于4.25V时,SEDET@GOTGINT中断会被触发,应用程序需要关闭Vbus并清除PPWR。 - **设备断开和连接** - 设备断开时,HPRTINT@GINTSTS和DISCINT@GINTSTS中断将触发,软件需要通过查询HPRT来确定具体事件(如PCDET@HPRT),并相应地处理电源和通信状态。 在HNP和SRP未启用时,PA9可以作为GPIO,过流检测可以通过任何空闲的GPIO完成,同样需要关闭Vbus和清除PPWR。 OTG_IP在USB应用中扮演着灵活的角色,能够根据连接的电缆类型和协议进行角色切换,并对电源管理和中断响应有严格的要求,以确保USB设备间的可靠通讯。