Choosing GD32 USB: Device/Host/OTG, FS vs HS, and Built-in HS PHY vs External ULPI
Picking a GD32 for USB starts with three questions: device/host/OTG? Is FS (12Mbps) enough or do you need HS (480Mbps)? If HS, is the PHY built in or do you bolt on a ULPI? The key trap: the GD32F4xx USB-HS REQUIRES an external ULPI PHY; only the GD32H7 has a built-in HS PHY. This guide lays out USB across the GD32 families (F103/F303 device-only, F305/F307 OTG, F4xx, H7).
Three USB questions: role, speed, where the PHY is
To pick a GD32 for USB, break it into three decision questions and you won't choose wrong: (1) do you want device (a slave, plugged into a PC), host (a master, reading an external USB drive/keyboard), or OTG that dynamically swaps between the two? (2) Is Full-Speed (12 Mbps) enough, or do you need High-Speed (480 Mbps)? (3) If you need HS, is that HS PHY built into the MCU, or do you have to add an external ULPI PHY? The third question is the one most people don't know about, yet it most affects BOM and layout. We take each in turn.
FS vs HS: decide by class + throughput
First decide FS or HS — it comes down to throughput. The three USB speeds: Low-Speed 1.5, Full-Speed 12, High-Speed 480 Mbps. The test is simple: a virtual COM port (CDC, replacing RS-232), keyboard/mouse (HID), firmware update (DFU), a small mass-storage drive (MSC), stereo audio (UAC1) — these are low-throughput, and Full-Speed 12 Mbps is plenty (effective ~1 MB/s order, a practical estimate). Only when throughput exceeds the FS ceiling — a USB camera (UVC), uncompressed high-resolution video, high-speed bulk MSC, multi-channel high-sample-rate audio (UAC2) — do you need High-Speed 480 Mbps. Fix FS/HS by "class + throughput" first, then pick a part.
Which USB each GD32 family has
Which USB each GD32 family provides (per the official datasheets): GD32F103 (M3) — USBD, full-speed device-only (slave), 4 endpoints, no host/OTG; GD32F303 (M4) — also a USBD full-speed device-only, but with 8 endpoints; note the GD32F303 is "device-only" — for host/OTG you need the same-line GD32F305/F307 (which add the USBFS OTG: full host+device+OTG, full-speed); GD32F207 (M3) — USBFS, device + host (full-speed); GD32F4xx (F405/F407/F427/F450/F470) — has both USBFS (built-in FS PHY) and USBHS (480 Mbps); GD32H7xx (M7, 600MHz) — two USBHS modules, more endpoints, plus battery-charging detection (BCD) and more. In short: device-only → F103/F303 (cheapest); host/OTG → F305/F307 or F207/F4xx; true HS → see the next section.
⚠️ The HS trap: F4xx needs external ULPI; only H7 has a built-in HS PHY
To run USB High-Speed (480 Mbps), the big trap is "where is the HS PHY." Although the GD32F4xx has a USBHS module, to actually reach 480 Mbps its datasheet states plainly that "HS mode requires an external ULPI-interface HS PHY" — i.e. an extra PHY chip plus an 8-bit ULPI parallel bus that eats a row of GPIOs; without it, the USBHS controller falls back to the internal FS PHY at full-speed. By contrast, the GD32H7xx has a built-in HS PHY (and can also use an external one), so no ULPI add-on — simpler BOM and layout, plus two USBHS modules with more endpoints/channels. So "need HS but don't want to bolt on a ULPI PHY" → go straight to the GD32H7. This is the point a distributor should proactively flag; choosing wrong wastes an extra part and a lot of routing.
How to choose
Converge on the three questions: (1) Role — slave only (into a PC) → GD32F103/F303 (device-only, built-in FS PHY, cheapest); host to read a drive/keyboard, or OTG role-swap → GD32F305/F307, GD32F207, GD32F4xx, GD32H7. (2) Throughput — CDC/HID/DFU/small MSC/stereo → USBFS (12M) suffices; UVC camera/high-speed bulk/multi-channel audio → USBHS (480M). (3) The HS PHY — GD32F4xx needs an external ULPI PHY for HS; for a built-in HS PHY that saves the part and routing → GD32H7xx. Don't overlook endpoint count either: a composite device (CDC+HID+MSC at once) needs enough endpoints (F103 has only 4, F303 has 8). JLink Technology is an authorized GigaDevice distributor supplying the full line — from device-only (GD32F103/F303) and USBFS OTG (F305/F307) to USBHS (GD32F4xx with external ULPI / GD32H7 with built-in HS PHY); tell us your role (device/host/OTG), throughput and whether you need HS, and we will help with selection and reply with samples, datasheets and pricing.
Products mentioned
GD32F303 Arm Cortex-M4 Mainstream MCU
The GD32F303 is a mainstream Arm Cortex-M4 MCU from GigaDevice at 120MHz (with DSP/FPU/MPU), 128KB~3MB Flash, 32~96KB SRAM, 3× 12-bit ADC, 2× DAC, rich timers, and USB FS/CAN/SDIO. In LQFP48/64/100/144, it is commonly used as an M4 upgrade from STM32F1 or an STM32F303-class alternative.
GD32F407 Arm Cortex-M4 High-Performance MCU
The GD32F407 is a high-performance 32-bit MCU from GigaDevice with an Arm Cortex-M4 core (FPU/DSP) at 168MHz, up to 1MB Flash and 192KB SRAM, integrating USB OTG (FS+HS), 10/100 Ethernet MAC, and CAN. With packages aligned to the STM32F407 (LQFP100/144), it is commonly used as an STM32F407-class alternative.
GD32H759 Arm Cortex-M7 600MHz High-Performance MCU
The GD32H759 is a high-performance Arm Cortex-M7 MCU from GigaDevice at 600MHz (L1 cache, double-precision FPU), with up to 3840KB Flash and 1024KB SRAM (ITCM/DTCM, ECC). It integrates 3× CAN-FD, dual Ethernet MAC (with EtherCAT), 2× USB HS/FS, 6× SPI, 2× OSPI, a TFT-LCD controller, and 14-bit ADC — for industrial automation, motor control, and graphical HMI. LQFP100/144/176, BGA.
Need these components or design help?
JLink Technology provides parts, datasheets, and engineering support.
Request a Quote