- vbus可能的来源:
a.由pmic供给,通过一根gpio来进行控制是否供电
b.由charger芯片直接供出来(例如bq2419x,可以设定otg模式供电)
c.也可能写某个寄存器来开vbus(难道cpu上的PHY可以供出3.3V的电么?)
- 当usbcable接上PC机的时候,有时候可以看到电源供电为负值,这是因为通过vbus给电池充电。Power supply就相当于电源
有些powersupply有防止电源倒灌的能力。它会适当地提高电压
- vbus和usb host controller的关系并不太大,可以不用同一块芯片出来。vbus没有的情况下可以由外接电源代替。有些时候可以采用有源的hub.但是有源的hub在vbus不供电的时候不一定会正常工作。如blekin的hub在vbus没有电的时候hub不能正常工作,而我自己的hub是能够正常工作的。所以一定要小心。搞清楚vbus是否供电。如果v bus不供电就使用外接电源来供电。由有源的hub供电不一定能够有效。
- vbus一般会有OCP的电路,也就是说当插入的时候如果出现过流的现象需要能够正常的恢复。当ocp电路不好,或者不工作的时候,vbus将会断掉,导致usb不能正常工作
- vbus有工作的电压范围。好像是4.4---5.5v左右(需要确认)
- 根据USB规范,从电源方面来讲,USB设备分为自供电和总线供电两种设备类型,设备通过枚举过程的设备描述符声明自己的电源要求。自供电设备不使用 HSOT/HUB的电源,而是自身有电源供应;总线供电即指设备电源来自VBUS。如果是总线供电设备,USB规范按照设备工作时吸取的电流大小又规定了两种设备:low pwer和high power设备,low power设备任何情况下不得吸取超过100mA的电流,high power设备在正确配置之前不得吸取超过100mA的电流,如果已经配置,任何情况下不得吸取超过500mA的电流。如果设备进入suspend状态,low power设备任何情况下不得吸取超过500uA电流,high power设备在已经正确配置并且远程唤醒功能被主机使能的情况下不得吸取超过2.5mA的电流,否则不得超过500uA(2008年USB-IF对 suspend电流规定进行了变更,原来的500uA电流的规定过于严格,因此所有USB设备suspend电流放宽到2.5mA。)
- VBUS连接到了PHY, Charger IC,以及PMIC三个部分。
a.连接到PHY是用于检测B session valid等中断,
b.连接到Charger IC是用于充电。
c.连接到PMIC是为了开机,用于开机检测,实际上是一个开机信号。(这是必须的连接)
Project A的设计中Vbus没有接到PHY的VBUS上.它只根据PMIC检测vbus插入,以及wakeup系统。这样需要另外的驱动来检测vbus的插入,然后通知usb的otg的驱动。
project X的设计vbus连上了USB的,直接在otg驱动中检测charger的插入.
project Y的实现vbus会先连接PMIC和Charger芯片,然后由PMIC给出一路电给USB的 PHY.用于防止OCP或者OVP的发生(参见stark vbus)
- 启动
总有一个驱动会在启动的时候检测一下vbus和ID pin脚.根据vbus的状态和ID的pin脚,进入host或device.
根据vbus决定是否进入充电状态。
ULPI的PHY上面需要连接D+D-,ID和VBUS