USB Inrush Current

This is a brief study of USB inrush current in GTA02v5, as a function of the size of the VB_SYS bypass capacitor (C1767). We first examine the characteristics of the test setup in general and then proceed towards measuring the inrush current used to charge the VB_SYS bypass capacitor.

The question we try to answer is whether it is safe to bypass VB_SYS with a large capacitor, or whether this will cause too high a load on USB.

USB Power Path

In order to measure the current that passes through USB, we need to know the voltage the PC provides and the resistance of cable and connectors. We can then calculate the current from the voltage difference.

The USB voltage the PC provides was measured with a plug that can switch a 10 Ohm resistor between VBUS and GND.

The resistance between the VBUS and GND contacts of a USB receptacle connected to this USB probe with the switch closed was measured to be 9.9 Ohm. When connecting the USB probe to the PC, the PC outputs 5003mV when the switch is open, and 4897mV when it is closed.

We also need to consider the PC's response to a sudden load change. The image below shows that VBUS drops when the 10 Ohm load is applied:

However, this drop is negligibly brief, only about 10ns, which is orders of magnitude below the effects we're examining here.

The next element of the path to the GTA02 is the USB cable. The voltage drop in the cable was measured by attaching receptacles to both ends and sending a current of 500mA through the cable. 85mV were dropped on VBUS and 40mV were dropped on GND and the shield combined. The cable has thus a round-trip resistance of about 250mOhm.

The cable capacitance was measured to be about 200pF, which is negligible in this context.

System Overview

The following picture shows the path current from USB takes when entering the system:

There are capacitors between the connector and the USB current limiter, and there are capacitors on the VB_SYS rail which in turn supplies the regulators. USB current limiter and regulators are part of the PMU.

The device used in these experiments is a GTA0v5 with a ceramic capacitor of 10uF on VB_SYS. (This capacitor did not exist in the original GTA02v5 design but was later added as C1767.)

The total capacitance on USB_VBUS is 45.2uF, consisting of C4902 (100nF), C4906 (22uF), and C4909 (1uF) directly on USB_VBUS, and C4911 (100nF) and C4913 (22uF) behind U4905, which switches inbound USB power on or off.

Note that an input capacitance of 45.2uF exceeds the 10uF limit specified in section 7.2.4.1 "Inrush Current Limiting" of the Universal Serial Bus Specification, Revision 2.0.

Small VB_SYS Capacitor

With VB_SYS only bypassed with 10uF, VB_SYS and USB_VBUS look as follows when the USB connector is inserted:

   

VB_SYS is shown in yellow, USB_VBUS in blue. The image on the right zooms into the rise of VB_SYS, i.e., when the 10uF capacitor is charged.

We see that USB_VBUS drops by about 128mV during 40us. A drop of 128mV across the 250mOhm we have measured before for the cable would correspond to 512mA. However, since the PC's USB power also drops under such a load, the actual current must be less. It was not possible to measure the USB voltage at the PC in this experiment, but we can obtain a lower bound by assuming the full drop to 4900mV. We would thus drop 60mV over the 250mOhm path, corresponding to 240mA.

Drawing a current between 240mA and 512mA without permission from the upstream device violates the USB specification, but since this behaviour is the hard-wired configuration of our PMU, there is little we can do about this.

Huge VB_SYS Capacitor

We now repeat the same experiment with additional capacitance added to VB_SYS. For this, we connect four 470uF capacitors in parallel with the 10uF capacitor, yielding a total capacitance of 1890uF, which is more than an order of magnitude larger than the 100uF we are considering.

   

Note that the rise time of VB_SYS has increased from about 40us to almost 50ms. Also note that the brief VBUS spike just before VB_SYS begins to raise does not always occur. This might be due to some latency in the PMU's USB current path.

When calculating the current, we obtain a lower bound of 360mA (90mV) and an upper bound of 688mA (172mV). This is consistent with the PMU limiting the current to a value below 500mA.

There is also a period of about 4ms at the beginning of the VB_SYS rise, during which the voltage drops by up to an additional 60mV, corresponding to 240mA. It is not clear what is causing this. Note that this could also be caused by exceeding the 500mA current budget by a smaller amount, and the host lowering VBUS in response.

Practical VB_SYS Capacitor

The maximum size of the capacitor we can put into a real device is limited. We are considering sizes of 47uF and 100uF. In the experiments below, the following capacitors were added in parallel to the 10uF capacitor already inside the device: With 47uF, VB_SYS rises within 400us. The voltage drop is in the expected range.

With 110-115uF, VB_SYS rises within 900-1000us. The voltage drop seems a bit more pronounced since we just cover the 4ms high-current excursion described above.

 

Electrolytic (left) and tantalum (right) show similar performance, with the tantalum capacitor drawing about 100mA less and therefore taking a bit longer to charge.

Conclusion

The experiments show that the PMU's ability to limit the USB current is not affected by the size of the VB_SYS bypass.

However, we violate the USB 2.0 specification as follows:

Increasing C1767 from to 100uF would yield a VB_SYS ramp-up time of 1ms, during which we would exceed the 100mA limit.


Fri Jul 11 09:23:30 UTC 2008