Monday, 11 January 2016

voltage - 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.



Answer



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.



enter image description here


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: -


enter image description here



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.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...