[M3_SN] 通用串行总线USB
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通用串行总线(USB)控制器
Stellaris USB控制器支持USB HOST/Device/OTG功能,可运行在全速和低速模式。它符合USB2.0标准,包含挂起和唤醒信号。它包含32个端点,其中包含2个用于控制传输的专用链接端点(一个用于输入,一个用于输出),其他30个端点带有可软件动态定义大小的FIFO并以支持多包队列。FIFO支持uDMA,可有效降低系统资源的占用。USB Device启动方式灵活,可软件控制是否在启动时连接。USB控制器遵从OTG标准的会话请求协议(SRP)和主机协商协议(HNP)。
Stellaris USB模块特性
⏹符合USB-IF认证标准
⏹支持USB2.0全速模式(12Mbps)和低速模式(1.5Mbps)
⏹集成PHY
⏹4种传输类型:控制传输(Control),中断传输(Interrupt),批量传输(Bulk),等时传输(Isochronous)
⏹32个端点
-1个专用的输入控制端点和1个专用输出控制端点
-15个可配置的输入端点和15个可配置的输出端点
⏹4KB专用端点内存空间:可支持双缓存的1023字节最大包长的等时传输
⏹支持VBUS电压浮动(droop)和有效ID检测,并产生中断信号
⏹用于高效传输的uDMA
-用于发送和接收的独立通道多达3个输入端点和3个输出端点
-当FIFO中包含需要的大量数据时,触发通道请求
16.1 模块框图
图16.1 USB模块框图
16.2 信号描述
表16-1 和表16-2列出了USB控制器的外部信号及其功能描述。一些USB控制器的信号是GPIO的复用功能,这些管脚在复位时默认设置为GPIO信号。表中“服用管脚/分配”一列列出了USB信号的可能管脚位置。当需要使用USB功能时,应将相关GPIO备选功能选择器(GPIOAFSEL)中的AFSEL位置位,表示启用GPIO的备选功能;同时还应将括号内的数字写入GPIO端口控制寄存器(GPIOCTRL)的PMCn 位域,表示USB信号分配给指定的GPIO管脚。USB0VBUS和USB0ID信号通过清除GPIO数字使能寄存器(GPIODEN)中相应的DEN位来配置。关于配置GPIO的详细信息,请参阅通用输入/输出(GPIO)一章。其余信号(“复用管脚/分配”列中标注”固定”的管脚)具有固定的管脚分配和功能。
注意:当用于OTG模式时,由于USB0VBUS和USB0ID是USB专用的管脚,不需要配置,直接连接到USB连接器的VBUS和ID信号。如果USB控制器专用于主机或设备,USB通用控制和状态寄存器(USBGPCS)中的DEVMODOTG和DEVMOD位用于连接USB0VBUS和USB0ID到内部固定电平,释放PB0和PB1管脚用于通用GPIO。当用作自供电的设备时,需要检测VBUS值,来确定主机是否断开VBUS,从而禁止自供电设备D+/D-上的上啦电阻。此功能可通过将一个标准GPIO连接到VBUS实现。
表16-1. USB信号(100LQFP封装)
表16-2. USB信号(108BGA封装)
“TTL“表示该管脚兼容TTL电平标准。
16.3 功能描述
注意:在管脚USB0RBIAS和地之间需要接一个1%精度的9.1k电阻,且该电阻离USB0RBIAS管脚越近越好。由于损耗在该电阻上的功率很小,可采用贴片电阻。
Stellaris USB支持OTG标准的回话请求协议(SRP)和主机协商协议(HNP),提供完整的OTG协商。回话请求协议(SRP)允许连接在USB线缆B端的B类设备向连接在A端的A类设备发出请求,通知A类设备打开VBUS电源。主机协商协议(HNP)用于在初始会话请求协议提供供电后,决定USB线缆那端的设备作为USB Host主控制器。当连接到非OTG外设或设备时,OTG控制器可以探测出线缆的另一端接入是USB Host主机还是Device设备,并通过一个寄存器只是OTG运行在Host主机还是Device设备角色,上述过程是Stellaris USB自动完成的。基于这种自动探测机制,系统使用A类/B类连接器取代AB类连接器,可支持与另外的OTG设备完整的OTG协商。
另外,USB控制器支持接入非OTG外设或HOST主控制器。它可以被设置为专用于Host或Device功能,此时USB0VBUS和USB0ID管脚可被设置作为的GPIO口使用。当USB控制器被用作自供电的Device时,必须将VBUS接到GPIO或模拟比较器的输入,在VBUS掉电时产生中断,用于关闭USB0DP的上拉电阻。注意:当使用USB 模块时,系统必须运行在20MHz频率或以上。