USB总线供电的集线器-每个设备超过100 mA?


11

我想问一个关于USB电源管理的非常具体的问题。

首先,我将概述设备的设计。这是一个对称信号线驱动器,带有用于我的DIY扬声器系统的内置音频编解码器。该设备在内部分为两个主要独立的模块:具有控制MCU的线路驱动器和音频编解码器(TI的PCM2706)。两者都需要USB数据连接(通过用于驱动程序块的FT232R),并且整个设备都应由总线供电。这两个模块将通过USB集线器芯片链接在一起,从而形成与PC的单个上行链路USB连接。我希望驱动器级的功耗在100到200 mA之间(肯定超过一个负载单位)。

问题来了:根据USB规范,总线供电的集线器每个下游端口只能提供一个单元,而从上游最多只能提取5个单元。我想知道,如果我通过FT232请求两个单元作为驱动器阶段,集线器会做什么。不会达到5个单位的上游限制(集线器1个单位,编解码器1个单位和驱动程序2个单位),因此计算机应该在物理上能够提供该电流。

对于集线器芯片,我一直在检查http://www.ti.com/lit/ds/symlink/tusb2036.pdf。有一个“联动”供电模式选项,对您有帮助吗?还是只是拒绝给驾驶员两个单位?在这种情况下,有没有肮脏的解决方法?

我知道要求枚举期间还需要大功率设备吸收最大100 mA电流的要求;这不是问题,因为FT232可以在枚举后立即打开驱动程序。集线器也将独立打开舞台。

希望我说的问题足够清楚,并感谢您的宝贵时间:)

更新:

我对TUSB2036芯片进行了更多研究。可以通过/ OCPROT引脚关闭过电流保护。然后,集线器向根控制器报告它无法检测到过电流。数据表中有一个警告,USB 2.0规范要求OC保护-这对我来说无关紧要,我只需要1.1 Full-speed。然后,PC的根集线器应为整个设备提供500 mAmps的电流。因此,我可以将驱动程序的FT232设置为仅要求100 mA,而集线器将永远不会知道我是否会超过限制(当然要从PC上获得500 mA)。有人可以告诉我这是否可行吗?

Answers:


3

我对您的设计的理解是,整个设备都在单个PCB上,在一个机箱内,并且通过一条USB电缆连接到主机。您已经将集线器集成到PCB上,以允许两个设备都与PC通信。以下答案将基于这些假设,如果它是由通过可断开电缆连接的几个单独的设备组成的,那将会改变情况。

在这种情况下,我建议您仅将集线器配置为枚举为高功率设备,并在整个板上共享由此产生的500 mA电流。有趣的是,即使在使用电源管理IC的情况下,TI的组合端口示例示意图也显示了所有连接在一起的设备:

在此处输入图片说明

输入的5V电源线(以蓝色突出显示,因为它是我们在此复杂原理图中感兴趣的两个网络之一)连接到TPS2041电源管理IC(慷慨的描述,它实际上只是一个FET,在以下情况下会关闭它检测到500mA的电流通过。但是,每个输入都短路在一起,每个输出也都短路在一起,然后分配到每个下游端口(网络显示为红色)。

基本上,它们在单个IC中为所有下游部分进行过电流保护。它们无法检测是否具有三个低功率(100mA)单元,一个高功率单元或两个低功率单元和一个300 mA单元。根据此参考设计,所有这些选项都是可接受的。你写了:

根据USB规范,总线供电的集线器每个下游端口只能提供一个单元,而最多只能提取5个单元...

但是,为了直接回答您的问题,德州仪器(USB小组成员和主要实施者)的设计表明,您只需要保证总电流小于5个单位即可。


为了解决您的问题,规则说明如下(摘自简要文档中的优盘):

高功率总线供电的功能将从总线获取所有功率,并且在配置之前不能吸收一个以上的单位负载,此后,如果描述符中有此要求,则可以释放5个单位负载(最大500 mA)。

如果可以保证在配置设备之前,驱动器级不会开始消耗电流(这可能和主机控制器中的定时延迟一样简单),则可以将所有内容连接在一起。因为您的整个电路都在单个PCB上,并且没有用户可访问的下游端口,所以您也可以省去TPS2041并简单地将系统设计为在任何状态下都不需要超过500 mA的电流。

列举为高功率设备的另一个好处是改进了输入电压规格。当您列举为低功耗设备时,仅要求主机在上游端口产生4.40 V(由于电缆的电阻,该电压在您的设备上会较低)。当您被列举为大功率设备时,该规范保证您将获得4.75 V,这很可能在您使用的任何5V组件的工作范围内。


感谢您的出色回答。但是如何以这种方式配置集线器?我需要外部EEPROM还是仅将/ GANGED引脚接地(以及其他配置引脚,取决于发送的原理图)?
拉迪斯拉夫

1
您需要将!GANGED接地,并将!EXTMEM接地至3.3V。但是,外部EEPROM可能不错:否则您的设备将在PC上显示为“通用USB集线器”。另外,您也可以使用板载微控制器模拟EEPROM(将I2C接口之一配置为从设备)。然后,您可以将其报告为“扬声器系统驱动程序和编解码器控制器”或类似的名称。
凯文·维米尔

5

我已经围绕该中心设计了一个板。

在我的应用程序中,它允许访问FT232和FT245。

如果一切都在您自己的PCB上,我建议您完全完全忽略整个过流保护系统。毕竟,如果您的PCB上的某件事发生故障,则整个工作都将需要进行,因此使该器件能够处理部分故障是有争议的。

在我的情况下,我绑紧了TUSB,要求提供500 mA的电流,并禁用过流保护,然后直接从USB 5.0v运行所有内容。我通过强制集线器向上游主机报告自供电来实现此目的。

我已经做了几个董事会,没有任何实际问题,因此这似乎是一个完全可行的策略。它也已在几台不同的计算机上使用,因此我会非常有信心按原样使用它。

当然,如果这是用于生产设备,而不是个人项目或测试工具(在我的情况下就是这样),那是完全不同的问题。

在此处输入图片说明

(请参见原理图上的注释)


对于它的价值,您通常可以在没有太多麻烦的情况下非常可怕地滥用大多数现代USB端口。他们中的许多人可以提供比其额定功率500ma高得多的功率,而没有太多麻烦。
而且,大多数设备(我已经测试过,除非有一些笔记本电脑)将很高兴地提供完整的500mA电流,而根本不需要枚举设备。

但是,这取决于主板,具体取决于USB主机的设计。你的旅费可能会改变。


是的,我一直在考虑这一点,但是正如您所说的,每个MB都有所不同。该设备不会大量生产,但是我需要它尽可能地可互操作,因此它可以在任何计算机上“正常工作”。无论如何,实际的观察同样有价值:)。
拉迪斯拉夫

@Ladislav-我认为无论如何都没有避免需要在不至少违反USB规范的情况下对下游设备进行电源开关的能力。
康纳·沃尔夫

值得注意的是,如果您将设备捆绑为总线供电,并且不打扰电源开关,它可能仍然可以工作。可能值得测试。或者,寻找仅USB-1.1的集线器IC。
康纳·沃尔夫

1

可能有点脏:TUSB2036允许选择下游端口(p3 NPINT1-0设置为10)。然后将设备连接到两个(物理)端口,以便可以并行绘制2个单元。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.