On this page

USB and Type-C

USB Version Evolution

Speed Generations (Ignoring the Naming Disaster)

Actual Speeds (using marketing names):

USB 2.0 (High Speed):   480 Mbps
USB 3.0 (SuperSpeed):   5 Gbps    ← Also known as USB 3.1 Gen1 / USB 3.2 Gen1
USB 3.1 (SuperSpeed+):  10 Gbps   ← Also known as USB 3.1 Gen2 / USB 3.2 Gen2
USB 3.2 (SuperSpeed 2x2): 20 Gbps  ← Dual-lane, requires Type-C
USB4 20Gbps:             20 Gbps   ← Based on Thunderbolt 3
USB4 40Gbps:             40 Gbps   ← Based on Thunderbolt 3

History of Naming Confusion (if you see these names):
  USB 3.1 Gen1 = USB 3.0 = 5 Gbps
  USB 3.1 Gen2 = USB 3.2 Gen2 = 10 Gbps
  USB 3.2 Gen1x1 = USB 3.0 = 5 Gbps (again...)
  USB 3.2 Gen2x2 = 20 Gbps

Rule: Don't look at the name, just ask "How many Gbps?"

Connector Evolution

Type-A: Classic rectangular port, unidirectional insertion (you always have to try three times)
  USB 2.0: 4 pins (VBUS/D-/D+/GND)
  USB 3.0: 9 pins (5 additional high-speed differential pairs)

Type-B: Square port, for printers/Arduino/legacy devices
  USB 3.0 version has an extra chunky bump

Mini-USB: Obsolete (MP3/old phone era)
Micro-USB: Transitional port for the smartphone era, being replaced by Type-C
  Micro-B 3.0: Unreasonably wide "flat port"

Type-C: The unified interface that rules them all ★
  24 pins, reversible, supports simultaneous USB + DP + PD transmission

USB Electrical and Topology

Differential Signals

D+/D- (USB 2.0): Half-duplex differential, 3.3V
  Speed Detection: D+ pull-up = Full Speed, D- pull-up = Low Speed

SSTX+/SSTX- (USB 3.x Transmit): Full-duplex differential
SSRX+/SSRX- (USB 3.x Receive): Full-duplex differential

Topology

USB Physical Topology: Tree structure rooted at Host Host (Controller) Hub Hub Device Device Device Tree structure, up to 7 levels (including Root Hub); Host initiates all transfers, Devices cannot initiate.

Transfer Types

TypeCharacteristicsApplication
Control (Control)Reliable, guaranteed bandwidthEnumeration/Configuration
Bulk (Bulk)Reliable, no guaranteed latencyFiles/Data
Interrupt (Interrupt)Reliable, guaranteed latencyKeyboard/Mouse
Isochronous (Isochronous)No retransmission, guaranteed bandwidthAudio/Video

USB Device Enumeration

USB Enumeration: From Insertion to Ready, with Descriptors Refining Layer by Layer Enumeration Flow (Insertion → Device Ready) Insert Host Detects D+/D- Pull-up Host Resets Bus (SEO) Host Assigns Address (SET_ADDRESS) Host Reads Device Descriptor (VID/PID/Class) Host Loads Corresponding Driver Device Ready Descriptor Hierarchy (Dependency, Refining Layer by Layer) Device Descriptor VID/PID/Manufacturer/Product Configuration Descriptor Power Consumption/Interface Count Interface Descriptor HID / MSC / CDC ... Endpoint Descriptor Endpoint Address/Direction/Type Descriptors are nested: Configuration defines power and interface count, Interface declares the device class (Class), and Endpoint is the actual channel for data transmission/reception — driver matching relies on the Interface's Class.

Type-C Detailed

Pinout (24 pins, Symmetrical Front/Back)

Side A (Top):                   Side B (Bottom):
GND  TX1+ TX1-  VBUS  CC1   GND  RX2+ RX2-  VBUS  SBU2
D+   D-   SBU1  VBUS  RX1-  D-   D+   SBU1  VBUS  TX2-
                                   (Mirrored Symmetry!)

GND  RX1+ RX1-  VBUS  SBU1  GND  TX2+ TX2-  VBUS  SBU2  ← After Flip

Key Pins:
  CC1/CC2: Detect insertion orientation + PD protocol communication
  SBU1/SBU2: AUX channel for DP Alt Mode
  D+/D-: USB 2.0 compatibility
  4 pairs of SuperSpeed differential pairs (TX1/RX1/TX2/RX2)

Role of CC Pins

1. Detect insertion orientation (which side is up)
2. Detect if the counterpart is Host/Device/Power Source
3. Announce current capability via Rp/Rd resistor values:
   - USB Default: 500mA (5V)
   - USB 1.5A:    1.5A  (5V)
   - USB 3.0A:    3.0A  (5V)
4. Serve as the physical layer for USB PD communication (BMC encoding, 300kbps)

Alt Mode

The 4 pairs of SuperSpeed channels in Type-C can be reconfigured:

DisplayPort Alt Mode:
  2 lane DP + USB 3.2 → 4K@60Hz + Data Transfer
  4 lane DP           → 5K@60Hz or 8K@30Hz

Thunderbolt Alt Mode: 40Gbps PCIe + DP
HDMI Alt Mode: Not popular, most use DP Alt Mode conversion

USB Power Delivery (USB PD)

PD 3.1 Voltage Levels

PD 3.0 (Max 100W):
  5V/9V/15V/20V @ 5A = 100W

PD 3.1 EPR (Max 240W):
  Added 28V/36V/48V @ 5A = 240W

PPS (Programmable Power Supply):
  Voltage adjustable in 20mV steps
  Current limited in 50mA steps
  → Phone directly controls charger voltage/current, eliminating need for internal buck conversion

PD Communication Flow

USB PD Negotiation: Source and Sink Handshake via CC Line Source (Charger) Sink (Device) ① Broadcast Capabilities: 5V/3A, 9V/3A, 15V/3A, 20V/5A ② Request: I want 20V/3A ③ Accept → Switch to 20V Output ④ Continuous Negotiation: PPS Dynamic Adjustment (Bidirectional) Communication Protocol: USB PD is based on Type-C CC pins, BMC encoding at 300kbps; PPS allows continuous fine-tuning in 20mV/50mA steps.

Common USB Classes (Class)

ClassNameDriver Required?Examples
HIDHuman Interface Device✅ System Built-inKeyboard/Mouse/Gamepad
MSCMass StorageUSB Flash Drive/External HDD
CDCCommunication Device❌ (Driver Needed)USB-to-Serial Adapter
CDC-ACMAbstract Control ModelVirtual Serial Port (Arduino)
CDC-NCMNetwork Control ModelUSB Ethernet Adapter
AudioAudio✅ (UAC 1.0)USB Headset/Audio Interface
VideoVideo✅ (UVC)Webcam
DFUDevice Firmware Upgrade-For Flashing Firmware
MIDIMusical InstrumentMIDI Keyboard

Quick Reference

Want Fast Charging → Look at PD Power (W), not marketing terms like W/QC/Flash Charge
Want Fast Speed → Look at Actual Gbps, not USB 3.x GenXxX names
Type-C ≠ USB 3.x (Can be USB 2.0 only Type-C)
Type-C ≠ Supports PD (Some Type-C ports only provide 5V)
Type-C ≠ Supports Video Output (Requires DP Alt Mode)

When checking specs, verify: Which specification, How much power, How much speed, Does it support video?

Keywords: USB, Type-C, PD, PPS, Alt Mode, CC Pin, HID, CDC, Enumeration, Descriptor