# Why does USB have Vcc=5V and high=3.3V?

I am thinking about adding USB support to a device of mine using V-USB. From what I read there and on other sites USB seems to have only 3.3V as a high level on the data pins, whereas the voltage supplied by USB is 5V.

What is the reason behind that? To me it seems to only make things more complicated since that way I need to work with multiple voltages on the board or completely step down the Vcc to 3.3V.

• It sounds like a question, my AC outlet has 120 V, why digital signals on my device are only 3.3 V or even 1.2 V ? Jun 21, 2018 at 0:19

The higher voltage allows compensation for voltage drop to the device. If USB was 3.3v then if you had a long cable and poor connectors with 0.5v of drop then the device will only run at 2.8v. If the voltage is 5v the you still have 4.5v to work with and that is enough to run an LDO voltage regulator.

• That does not explain why the voltage on the data pins is only 3.3V and not also 5V. Sep 15, 2015 at 21:35
• @Philipp sure it does. If the processor voltage cannot be guaranteed then the data line voltage also cannot be guaranteed. With this system of voltages even if the 5v line sags the data line voltage can still be guaranteed. This guaranteed voltage is necessary to keep clean transmission for full speed and high speed USB. Sep 16, 2015 at 0:55
• I think towards the device would also sag the data voltage, but the device would have enough power from the power voltage to generate the data voltage or indicate an error. Sep 16, 2015 at 7:54
• @vini_i I see, that makes sense. Thanks for the information! So basically, USB is a 3.3V interface with 5V power supply just in case? Sep 16, 2015 at 10:14
• @Dakkaron sure, but there are more reasons. Ability to transfer higher power is also important. Sep 16, 2015 at 10:27

The data lines on low speed USB have a differential signal voltage of the following characteristic for the transmitter: -

On low and full speed devices, a differential ‘1’ is transmitted by pulling D+ over 2.8V with a 15K ohm resistor pulled to ground and D- under 0.3V with a 1.5K ohm resistor pulled to 3.6V. A differential ‘0’ on the other hand is a D- greater than 2.8V and a D+ less than 0.3V with the same appropriate pull down/up resistors.

And for the receiver the spec is: -

The receiver defines a differential ‘1’ as D+ 200mV greater than D- and a differential ‘0’ as D+ 200mV less than D-.

Information taken from here and note that where it says 3V6 it actually means 3V3.

For high speed USB systems the voltage levels are smaller: -

As you can probably tell the transmit logic levels have nothing really to do with either 5V or 3V3 logic systems. The power feed is just a regular power feed that makes compatibility with 5V and 3V3 systems fairly easy.

• Ok, so just to recap, you say a 1 is D+ over 2.8 and vice versa. So is it ok to pull it up to ~5V? So, are D+ and D- 5V tolerant? Sep 15, 2015 at 10:09
• You may find that some high-speed (USB2) receivers are not 5V tolerant. here's one that is an it specifically says it is: exar.com/connectivity/uart-and-bridging-solutions/usb-uarts/… Sep 15, 2015 at 10:14
• Ok, so I should limit my output on D+ and D- to 3.3V max. Thanks for that information! Sep 15, 2015 at 10:22
• You've quoted the spec, but you didn't answer the question why the authors of the spec did it that way. Sep 15, 2015 at 21:36
• @philipp feel free to make this your answer. Sep 16, 2015 at 5:59

The 5V voltage on power pins is just a power feed for a device which needs power. At the time USB was introduced both 5V and 3.3V devices were common and the goal was to support both systems. There are (at least) two advantages of using 5V as power supply voltage instead of 3.3V:

• For the devices that needs higher power (eg. external HDD) using higher voltage at the same supply current yields more power. Using 3.3V as supply voltage and increasing the current would not be equally good, as it would require thicker wire to transmit.
• In case of a 3.3V low power device, it is far more simpler, cheaper and more efficient to regulate 3.3V from 5V using a simple LDO than vica versa. The latter would require a switch mode boost converter which is more complex.

The case for data pins is also for supporting both 3.3V and 5V devices as simple as possible. An 5V device's input/output can be designed to interpret and output 3.3V max. as high level. The decades old TTL standard already required only 2.4V as high level, so in theory are 3.3V compatible (as an input).

In contrast, if the data bus would be choosen to operate on 5V levels, it would cause problems for 3.3V devices. Although an input can be easily made to be 5V-tolerant, on an output it is not possible to output 5V using single supply voltage. It requires a level shifter (built-in or external) and both supply voltages. It is by all means more complicated than the previous, especially on bidirectional bus like the USB.

A primary factor when determining voltage levels for a differential bus is power consumption. The higher the voltage/bit rate is, the higher the power consumption is (this should be obvious to the reader). In particular, power consumption is amplified when you have very high speed signals, or multiple load points. If you think of the same issue in the other direction, a higher voltage level will be harder to achieve from the driver perspective thus will limit transmission speed. Current mode driving (which ensures the speed) used in many modern buses, USB included, allows lower voltage swings on the data lines.

On another note, reflections or signaling imperfections will result in over/undershoots. If you already have an intrinsically high voltage on the bus, the superimposed (and higher power) transients may not be tolerable by the device. That power also goes in vain. The extreme case of this phenomenon is when you disconnect the antenna from an RF transmitter. If you have enough power in the transmitter you will jeopardize the radio. You can take other factors, like EMI, into consideration as well. How about the dissapated heat in termination? For a given Z0 more volatge, more heat.

That is why the Low/Full speed USB uses 3.3V, USB 2.0 and later uses the even lower 800/400mv. We usually want to apply the lowest voltage that makes sense for the specific interface. Be reminded that many high speed interfaces (such as ethernet, can, hdmi, pci, lvds, and many more) all use low voltage signals in the same tier.