第3章:VBUS电压范围与规范归纳总结

做USB OTG调试,VBUS电压排查是个基本功。很多人一遇到设备不识别,就怀疑芯片坏了,其实多数时候是电压没达标。官方规范里写得明明白白,但实际落地时,总有那么些坑等着你踩。

我个人习惯,拿到一个新项目,第一件事就是把VBUS的电压容忍范围吃透。你想想,要是连基线都不清楚,后面怎么查?本章咱们就把USB 2.0、USB 3.x,还有OTG的那些特殊要求,一块捋清楚。

核心理解:VBUS电压必须在规范窗口内,且纹波不能太大。低于下限,设备不充电或枚举失败;高于上限,可能烧坏接口芯片。

3.1 USB 2.0 官方电压要求

USB 2.0规范里,VBUS是给设备供电用的。源头是主机(A口)或HUB。我刚开始做工程师那会儿,觉得这就是个5V电源,没啥了不起。后来被坑了一次,才发现门道很多。

官方标称是 5V ±5%,也就是 4.75V 到 5.25V。但实际工作中,我很少见到刚好卡边的情况。一般好的主机,空载时能在5.05V到5.15V之间。

表上很清楚,但实际排查时,你得注意两点:

  • 瞬态电压:设备突然插入时,电压会掉一截。规范允许掉到4.75V以下吗?原则上不,但实际很多设备在4.5V还能撑住。
  • 过流保护:主机端通常会有一个500mA的限流。VBUS电压一旦被拉低到4.4V以下,基本就触发保护了。

一个小技巧:用手持示波器探头直接测VBUS和GND,别用长地线夹,容易引入纹波干扰。我习惯用弹簧地针,直接扎在电容引脚上。

3.2 USB 3.x 的电压区别

USB 3.x规范在VBUS上跟2.0其实差不多,但电流要求翻倍了。USB 3.0(也就是SuperSpeed)允许主机提供900mA,算下来负载更重。

电压范围依旧写的是5V ±5%,但你想想看:同样拉900mA电流,线缆压降会更明显。USB 3.0线缆屏蔽更好,但铜线细了,远端电压掉得更厉害。我记得有一次项目,手机连电脑不识别,用普通线能行,用一根长3米的USB 3.0线就不行。查到最后,线端VBUS只有4.6V了。

为什么USB 3.x对VBUS更敏感?因为SS(SuperSpeed)信号共模电平依赖VBUS质量。VBUS抖动一大,SS信号就跟着漂。这不是玄学,我实测过。

3.3 OTG的特殊要求

OTG模式里,VBUS的角色变了。它不再只是供电线,还承担着角色检测的任务。OTG设备通过ID引脚和VBUS电压来判断自己是主机还是外设。

OTG规范要求:

  • A设备(做主机时)必须提供至少4.75V的VBUS,最大5.25V。
  • B设备(做外设时)在VBUS低于4.4V时应该认为自己还未接入有效电源。
  • SRP(会话请求协议)中,B设备会短暂拉低VBUS,告诉A设备“我想干活”。

这里面有个容易翻车的地方:

注意:OTG设备不能依赖VBUS升压芯片给到5.0V以上的电压。有些设计为了省成本,用LDO直接降压,结果空载输出5.3V。虽然不超过5.25V上限,但纹波大了,很容易导致握手失败。我曾经碰到过一块开发板,一接U盘就重启,查了半天,VBUS纹波有80mV,换了一颗输出电容就好了。

下面这张图把整个电压关系画清楚了:

USB OTG VBUS电压节点与范围关系 VBUS电压节点与规范范围 USB主机/HUB OTG A设备 USB线缆+连接器 USB设备/外设 OTG B设备 VBUS: 4.75V ~ 5.25V 主机/HUB侧:空载5.0-5.15V 负载时不低于4.75V 设备侧:低于4.4V视为无效 纹波建议<50mV p-p SRP会话请求:B设备短暂拉低VBUS以触发检测

3.4 实际操作中的电压容忍陷阱

规范是一回事,实际产品又是另一回事。不是你按照5V ±5%设计就一定没问题。我总结了几条经验,你可以对照一下自己的项目:

  1. 万用表不准:普通手持表测VBUS,精度一般到±0.5%就差不多了。要判断是否在4.75V以内,建议用4位半以上的万用表。
  2. 线缆压降被忽略:很多工程师只在板子接口处测电压,认为5.0V就OK。但USB插头经过长线后,远端设备引脚电压已经低于4.5V。我曾经在客户现场用一根2米的USB线测到4.42V,当时那个U盘死活不认。
  3. 纹波不是小事:标准写VBUS电压,其实暗含了纹波要小。我个人的经验,纹波低于50mV p-p比较安全。超过100mV,高速信号就会受影响。
不同规范下的VBUS电压参考
规范/场景 电压范围 最大电流 关键检测点
USB 2.0 主机 4.75V ~ 5.25V 500mA 空载5.05V以上
USB 3.0/3.1 主机 4.75V ~ 5.25V 900mA 线缆远端不低于4.6V
OTG A设备 4.75V ~ 5.25V 设备协商 VBUS输出纹波<100mV
OTG B设备 检测窗口:4.4V ~ 5.25V 待机 低于4.4V应进入空闲
SRP会话请求 拉低至1.5V以下 毫秒级脉冲 A设备必须检测到这变化

小结:VBUS电压不是简单的5V就完事。你需要考虑源端的空载电压、线缆压降、瞬态跌落、纹波,还有OTG模式下特殊的手握手势。这些细节没处理好,设备就可能在“即将识别”和“无法识别”之间反复横跳。

嗯,到这里,VBUS的电压范围与规范,基本都覆盖到了。下次你在排查时,记得先拿板子测一下空载电压,再插上负载看电压掉到哪。如果发现数据对不上规范,别急,可能就是某个小细节坏了事。