有关HUB供电方式——总线供电与自供电
一:根据USB规范,从电源方面来讲,USB设备分为自供电和总线供电两种设备类型,设备通过枚举过程的设备描述符声明自己的电源要求。自供电设备不使用 HSOT/HUB的电源,而是自身有电源供应;总线供电即指设备电源来自VBUS。
即USB设备:
- 自供电:使用外部电源进行供电。
- 总线供电:使用USB总线的(5V)进行供电。
二:对于由总线供电的设备,根据功耗可区分低功耗设备和高功耗设备:
- 低功耗设备:最大电源供电为100mA
- 高功耗设备:在设备枚举过程中配置供电为100mA,在正常使用过程中为500mA.
-
设计电路推荐
疑问:总线供电时,主机口是如何给设备分配电流的?
以下用于验证的HUB来自沁恒微电子的USB2.0高速4端口HUBCH334系列
总线供电方式验证:
开启HUB总线供电模式,HUB芯片由上行口电源供电,下行设备由外部电源供电
汤铭和创惟的HUB开启总线供电后现象一致(这里有个问题,虽然现象上是开启总线供电的表现,通过USBVIEWM中的描述符看,这两个HUB实际上传的描述符里还是自供电模式)
低速设备上报电流普遍为100mA,识别正常,全速高速设备所需最大电流需要200,300mA等,现象表明,主机可能是通过设备上传额的描述符值来判断电流,并不是实际的电流检测
利用CH549模拟一个HID类设备,修改配置描述符里的最大电流参数为98和102mA,
结果表明102mA异常,98mA正常,
猜想:HUB的最大工作电流为100mA,开启总线供电后,可能是设备上报的电流不能超过HUB,实际测试如果接4个100 mA的设备也是正常
反向验证:通过修改配置参数,将HUB的最大电流改为300mA,开启总线供电,外接549模拟设备,结果异常,结论不完全正确
结合下行口接四个100mA的设备均能正常识别
猜想:可能是上行 VBUS 500mA平均分给下行四个端口
结论:
总线供电的集线器在枚举后,VBUS 500mA 会被平均分为五个单位负载(每个单位负载100mA)给到集线器集线器内控制器和不可移除配置项(HUB内部用于配置电源的控制器)和下行四个外部端口,且总线供电的集线器只可以给每个外部端口一个单位负载100mA
以下是部分USB2.0协议原文: