我想问一个关于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)。有人可以告诉我这是否可行吗?