USB 2.0 功率传输

最近在做的一个项目需要用USB2.0(因为数据速率其实连2.0的一对差分对都跑不满)传输相对大一些的功率,大抵来说用户希望还是5V不变的情况下,电流可以到1.5A左右,然而老板并不希望走Type-C PD,因为用户那边老设备很多都是2.0 Type-A。

但是显然BC1.2是不行的,毕竟要短接D+和D-,就没法传输数据了。

之前同事做了个板子,直接简单粗暴的接了个最大输出能到2A 的buck converter,从系统12V输入那边取电,降压到5V之后直接接到USB的VBUS上。然后D+和D-照常跑数据。

听上去解决了?naïve!

测试板根本到不了1.5A,事实上也就在五六百毫安上下。

接手这个项目的我查了一下USB-IF的USB 2.0标准,发现USB2.0其实有规定超过100mA属于高功率应用,需要:

图7-44是常规接法,最多只支持到1个unit,也就是100mA,相当于才0.5瓦。
图7-45是高功率接法,最多支持到5个unit,也就是500mA,也只有2.5瓦。

但是这个地方很多时候没有那么严格,即使没有这样的设计,有时候很多端口或设备也能跑到这个功率上。如果用户的设备进入这个工作区域的话,的确只能从我们的USB端口获取500mA电流,和我们测下来输出在500-600mA之间是比较吻合的。

更高功率要么将数据D+和D-短接/下拉/上拉/接电阻分压(USB3.0时代之前的电池充电BC1.2协议或其他厂商充电协议),但是这种方式将USB端口配置为了插座充电模式,这个时候USB仅用作功率传输,基本上是不太能传输数据的。(废话,仅有的一对数据传输线被占用了),亦或者是厂商各种基于USB-A接口的物理形状重新定义一个私有接口。

要么就只能走 USB Type-C PD协议(这个大家应该很熟悉了吧)。

13 Likes