USB OTG主机模式详解:OTG_IP与供电管理
需积分: 10 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设备间的可靠通讯。
2018-05-02 上传
2021-09-30 上传
2019-09-11 上传
点击了解资源详情
2022-09-23 上传
2022-09-24 上传
2013-03-28 上传
2011-03-06 上传
2019-09-15 上传
yuantian2987
- 粉丝: 11
- 资源: 26
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建