USB上的DM DP ID上下拉电阻分析.doc
-作者xxxx-日期xxxxUSB上的DM DP ID上下拉电阻分析【精品文档】USB上的DM,DP拉电阻分析DM,DP上拉电阻分析: usb有主从设备之分,主设备有:pc, 现在市面上的那些插u-disk即可播放mp3的“mp3”之类的。usb 信号是差分信号,信号线为D+, D-,。 在usb host 端, D+,D- 各接一个15kohm 的下拉电阻, 而在usb device端,这时就有高速低速设备的区别了。协议中都有定义高低速设备以满足不同情况的需求,这些在硬件上的区别就是:高速设备:d+ 接一个的上拉电阻,d-不接;低速设备则相反。这样当usb device 插入到host中时,如果是高速设备,则d+被拉高,d-不变;低速设备则与之相反。这个上拉过程需要大概的时间,host这这个时间内便检测到了该信号,即可判断有device plug in,和该device的类型,然后开始通讯,枚举。等。ID上下拉或者悬空分析:USB OTG(on the go)就是既可以做host又可以做client。我们一般是作为client接受pc传输数据,作为host时可以接打印机直接把手机中的照片打印出来判别是host还是client是靠USB_ID这根pin 当作为client时,USB_ID基本是悬空的(内部有上拉) 如果侦测到USB_ID被拉低,就被认为是作为host,向外输出所以需要外部client设备把USB_ID拉低其中ID脚在OTG功能中才使用。由于Mini-USB接口分Mini-A、B和AB接口。如果你的系统仅仅是用做Slave,那么就使用B接口。 系统控制器会判断ID脚的电平判断是什么样的设备插入:如果是高电平,则是B接头插入,此时系统就做主模式(master mode) ;如果ID为低,则是A接口插入,然后系统就会使用HNP对话协议来决定哪个做Master,哪个做Slave。 这些说明为技术人员总结的,仅供参考。总结:A型 ID接下拉;B型ID悬空或者接上拉;(A,B,AB型都是5个脚)我们手机上一般用的都是B型Mini-USB口3、VBUS USB电源开关,起限流(原因)最近碰到有些客户遇到USB的使用问题,主要表现在U盘不识别,VBUS 错误等。最后分析出的结果很多都是与VBUS的设计相关。所以在这里简单地分享下VBUS电路设计的一些注意事项。AM335x采用的是两路USB OTG控制器。所谓的OTG,就是USB模块可以在host模式和device模式之间切换工作。相比早期芯片里的USB HOST控制,OTG控制器不仅在内部状态机设计更加复杂,而且增加了几路外部信号以及相对应的检测,比如ID脚以及VBUS检测。但是许多客户在设计中往往都只将关注点放到了ID脚的处理上,而简单地认为VBUS处理与USB HOST控制器相同,只要保证500mA正常工作电流即可。之所以说VBUS是一个非常重要的检测信号,是因为在OTG 控制器在USB 设备识别、HOST 和device模式切换过程中,VBUS都作为一个控制信号或者说是触发开关,而在USB HOST控制器里,VBUS仅仅只是作为供电电源。以下列出了在VBUS设计上的一些注意要点,1. 在HOST模式,VBUS上需连接不小于120uF的电容。一般来说,120uF-150uF是典型值。以下是Ti 官方GPEVM USB1接口部分的电路截图,USB1做为HOST口使用,USB刚一开始连接,会瞬间需要高于500mA的电流。这时如果VBUS的电流供电能力不足,就会在5V上产生跌坑。这个跌坑一方面可能会引起USB 设备工作的异常,另一方面,当这个跌坑低于4V时,AM335x一侧会停止进行下一步的枚举过程,同时进入到VBUS 错误处理(或者叫VBUS过流处理)并输出相应错误信息。完成处理后重新开始HOST 或DEVICE工作模式的检测。而电容的主要目的就是为了在出现跌坑时,有个及时放电的过程以保证电压的稳定。考虑到AM335x和AM37x采用的是同一个USB OTG IP,所以下面Ti wiki网页中AM37x OTG VBUS上电容设计建议也可以作为AM335x设计的参考,2. 建议VBUS供电采用USB电源管理芯片,如Ti TPS2051BD以下是Ti官方 GPEVM上TPS2051BD电路部分截图, 除了USB电源芯片可以保证提供足够所需的电流外,更重要的是,AM335x可以通过USBx_DRVVBUS这个脚控制VBUS电源的开关。一旦在HOST模式发生VBUS 错误或者说过流错误,AM335x会先通过DRVVBUS暂时关闭VBUS电源,以防止重新开始OTG工作模式检测时误判断为device模式。为了帮助工程师理解这一过程,AM335x 技术参考手册(TRM, technical reference manual, spruh73i)第节 Functional Description详细介绍了OTG工作流程。另外,上图中红色部分圈出的USBx_DRVVBUS上接的上/下拉电阻也要根据所选USB电源芯片EN脚极性做正确的选择。以TPS2051BD为例,EN为高电平有效,即当输入高电平时,TPS2051BD会输出5V。在使用这种电源芯片时,请使用下拉电阻。否则,芯片一上电就会在VBUS上产生5V电压,有可能导致OTG模块错误的工作在device模式下,并且无法正常切换至HOST模式,换句话说就是无法识别u盘。相反,如果电源芯片的EN为低电平有效,则需要采用上拉电阻形式。电阻阻值的选择可以参考GPEVM设计,也可以根据实际情况,适当调整阻值大小获得合适的驱动能力。鉴于最近看到不少客户在使用USB直接作为host时,想要省掉一个5V的DCDC,直接连接到5V的输入上面。对于Linux SDK,需要一个patch去确保这个设计能够正常工作,patch内容请参考:【精品文档】