Ameba USB Solutions
Integrated USB 2.0 with built-in PHY, versatile Host, Device, and OTG applications
Overview
The Ameba series of SoCs integrates USB 2.0 controller with built-in PHY, providing a wide range of solutions for USB Host, Device, and Dual-Role/OTG applications. Supporting various scenarios such as communication, multimedia, storage and human interface devices, their performance, compatibility and reliability have been extensively validated across a multitude of mass-produced customer products.
The table below lists the common USB classes and their support status across the Ameba SDKs. For how each class is implemented on the host and device sides and which SoCs support it, see the corresponding SDK stack section.
| USB Class | Description | Control Transfer | Bulk Transfer | Interrupt Transfer | Isochronous Transfer | FreeRTOS | Linux | Zephyr |
|---|---|---|---|---|---|---|---|---|
| CDC ACM | Abstract Control Model subclass of CDC, commonly presented as a virtual serial port for transparent data transmission | IN/OUT | IN/OUT | IN (optional) | — | Y | Y | Y |
| CDC ECM | Ethernet Control Model subclass of CDC, exposing the USB device as a standard Ethernet interface, with one Ethernet frame per transfer | IN/OUT | IN/OUT | IN (optional) | — | Y | Y | N |
| CDC NCM | Network Control Model subclass of CDC, functionally equivalent to ECM but aggregating multiple Ethernet frames per transfer for higher throughput | IN/OUT | IN/OUT | IN (optional) | — | Y | Y | N |
| HID | Human interface device class, defining the data format through Report Descriptors and exchanging data through input, output and feature reports | IN/OUT | — | IN, OUT (optional) | — | Y | Y | Y |
| MSC | Mass storage class, accessing storage media through the SCSI command set | IN/OUT | IN/OUT | — | — | Y | Y | Y |
| UAC | Audio class for audio streaming and control, supporting UAC 1.0 (up to 96kHz/24bit) and UAC 2.0 (up to 384kHz/32bit) | IN/OUT | — | — | IN/OUT (optional) | Y | Y | Y |
| UVC | Video class for video streaming and control, supporting compressed formats such as MJPEG, H.264 and H.265, as well as uncompressed formats such as YUV | IN/OUT | — | IN (optional) | IN | Y | Y | Y |
| DFU | Device Firmware Upgrade class, standardized firmware update over USB | IN/OUT | — | — | — | Y | Y | Y |
| Vendor | Vendor-specific class (Class Code 0xFF), with fully customizable protocol, endpoints and data format | IN/OUT | User-defined | User-defined | User-defined | Y | Y | Y |
| Composite | Carries multiple function classes over a single USB interface, e.g. a 4G dongle provisioned over CDC ACM while Ethernet frames are carried over CDC ECM | IN/OUT | Depends on member classes | Depends on member classes | Depends on member classes | Y | Y | Y |
FreeRTOS USB Stack
Independently developed by Realtek, covering every USB-capable SoC of the Ameba series. It comes with a rich set of USB-IF standard classes, a lightweight footprint and a concise API, and has been validated over the long term in many customers' mass-produced products.
- Widest SoC coverage: every USB-capable SoC of the Ameba series can be used
- Common standard classes all included: CDC ACM/ECM/NCM, DFU, HID, MSC, UAC, UVC
- Fully customizable device descriptors: VID/PID, strings, interface and endpoint configuration
- Core driver optimized for embedded scenarios, with a small footprint: about 20KB Flash / 3KB RAM on the host side, about 10KB Flash / 1KB RAM on the device side
- Asynchronous callback-based API, concise and easy to pick up, with lower CPU scheduling overhead and better system real-time behavior
- Bus errors are detected and retransmitted automatically, keeping data intact
- Hot-plug supported, with a debouncing design built into the core driver
- Validated over the long term in many customers' mass-produced products
The FreeRTOS USB stack supports the following USB class drivers and SoCs (Y: supported; N: not implemented yet; N/A: not supported by hardware):
| Class | RTL8721Dx | RTL8730E | RTL872xD | RTL8721F | RTL8735B |
|---|---|---|---|---|---|
| CDC ACM Host | N/A | Y | Y | Y | Y |
| CDC ACM Device | Y | Y | Y | Y | Y |
| CDC ECM Host | N/A | Y | Y | Y | Y |
| CDC ECM Device | Y | Y | N | Y | N |
| CDC NCM Host | N/A | Y | N | Y | N |
| CDC NCM Device | Y | Y | N | Y | N |
| DFU Host | N/A | Y | N | Y | N |
| DFU Device | Y | Y | N | Y | N |
| HID Host | N/A | Y | N | Y | N |
| HID Device | Y | Y | Y | Y | Y |
| MSC Host | N/A | Y | Y | Y | Y |
| MSC Device | Y | Y | Y | Y | Y |
| UAC Host | N/A | Y | N | Y | N |
| UAC Device | Y | Y | N | Y | N |
| UVC Host | N/A | Y | Y | Y | N |
| UVC Device | N/A | N/A | N/A | N/A | Y |
| Vendor Host | N/A | Y | N | Y | Y |
| Vendor Device | Y | Y | N | Y | Y |
| Composite Host | N/A | Y | N | Y | N |
| Composite Device | Y | Y | Y | Y | Y |
Linux USB Stack
Reuses the Linux kernel native USB framework and is fully compatible with the standard USB ecosystem. Host- and device-side class drivers already integrated in the kernel work out of the box, and the driver layer is optimized for Ameba hardware characteristics, minimizing software development and maintenance costs.
- Built on the kernel native USB subsystem: host-side, device-side frameworks and user-space access interfaces are all available
- Evolves in step with kernel releases, directly picking up community feature enhancements, security fixes and performance optimizations
- Standard class drivers already in the kernel work out of the box: CDC ACM/ECM/NCM, HID, MSC, UAC, UVC and more
- Host side accessible directly through libusb; device side customizable through ConfigFS/FunctionFS
- Provides the underlying USB PHY driver, with calibration parameters flexibly configurable via DTS
- Native controller driver optimized around Ameba USB hardware characteristics for further reliability
The Linux USB stack supports the following USB class drivers and SoCs (Y: supported; N: not implemented yet; N/A: not supported by hardware):
| Class | RTL8730E |
|---|---|
| CDC ACM Host | Y |
| CDC ACM Device | Y |
| CDC ECM Host | Y |
| CDC ECM Device | Y |
| CDC NCM Host | Y |
| CDC NCM Device | Y |
| DFU Host | Y |
| DFU Device | N |
| HID Host | Y |
| HID Device | Y |
| MSC Host | Y |
| MSC Device | Y |
| UAC Host | Y |
| UAC Device | Y |
| UVC Host | Y |
| UVC Device | Y |
| Vendor Host | Y |
| Vendor Device | Y |
| Composite Host | Y |
| Composite Device | Y |
Zephyr USB Stack
Independently developed by Realtek, sharing the same mass-production-validated core driver as the FreeRTOS stack. It fills the USB host-side gap left by native Zephyr, while keeping Zephyr's flexibility of on-demand tailoring and fully customizable descriptors.
- Deeply integrated with the Zephyr build system: modules tailored on demand, firmware footprint under control
- Fully customizable USB descriptors: VID/PID, device strings, number of interfaces and endpoint configuration
- Shares the same mass-production-validated core driver code with the FreeRTOS stack
- Engineering maturity on par with the FreeRTOS stack and significantly higher than the Zephyr community native version
- As a Zephyr member, Realtek keeps feeding improvements back to the community
- Adds the complete USB host stack that native Zephyr lacks
- Common standard classes all included: CDC ACM, DFU, HID, MSC, UAC, UVC
- Composite functions and vendor-specific classes supported, so private protocols can be built quickly on the standard framework
The Zephyr USB stack supports the following USB class drivers and SoCs (Y: supported; N: not implemented yet; N/A: not supported by hardware):
| Class | RTL8721Dx | RTL8730E | RTL8721F |
|---|---|---|---|
| CDC ACM Host | N/A | Y | Y |
| CDC ACM Device | Y | Y | Y |
| CDC ECM Host | N/A | N | N |
| CDC ECM Device | N | N | N |
| CDC NCM Host | N/A | N | N |
| CDC NCM Device | N | N | N |
| DFU Host | N/A | Y | Y |
| DFU Device | Y | Y | Y |
| HID Host | N/A | N | N |
| HID Device | Y | Y | Y |
| MSC Host | N/A | N | N |
| MSC Device | Y | Y | Y |
| UAC Host | N/A | Y | Y |
| UAC Device | N | N | N |
| UVC Host | N/A | Y | Y |
| UVC Device | N | N | N |
| Vendor Host | N/A | Y | Y |
| Vendor Device | Y | Y | Y |
| Composite Host | N/A | Y | Y |
| Composite Device | Y | Y | Y |
Typical Applications
- USB Audio/Video Transmission: Smart door viewers, video doorbells, smart locks, smart surveillance, image capture, smart speakers, etc.
- USB 4G/Ethernet Communication: IoT gateways, mobile hotspots, ethernet adapters, smart surveillance, etc.
- USB External Storage: Smart speakers, data acquisition, OTA upgrades, remote file management, smart audio/video, etc.
- USB Transparent Transmission: Serial communication, custom communication protocols, etc.
USB Audio/Video Transmission
Smart door viewers, video doorbells, smart locks, smart surveillance, image capture, smart speakers, etc.
USB 4G/Ethernet Communication
IoT gateways, mobile hotspots, ethernet adapters, smart surveillance, etc.
USB External Storage
Smart speakers, data acquisition, OTA upgrades, remote file management, smart audio/video, etc.
USB Transparent Transmission
Serial communication, custom communication protocols, etc.
- USB Audio Device: Headphones, microphones, speakers, smart speakers, smart broadcasting, wired and wireless audio applications
- USB HID Device: Smart remote controls, smart keyboards/mice, gamepads, remote control, human-computer interaction applications
- USB Storage Device: Reading pens, voice recorders, audio players, wireless storage, etc.
- USB Transparent Transmission: Serial communication, custom communication protocols, etc.
- USB Wireless Card: USB wireless network card
USB Audio Device
Headphones, microphones, speakers, smart speakers, smart broadcasting, wired and wireless audio applications
USB HID Device
Smart remote controls, smart keyboards/mice, gamepads, remote control, human-computer interaction applications
USB Storage Device
Reading pens, voice recorders, audio players, wireless storage, etc.
USB Transparent Transmission
Serial communication, custom communication protocols, etc.
USB Wireless Card
USB wireless network card, providing network access for the host
- Wireless CarPlay Adapter: When powered on, it operates in device mode. After completing necessary authentication, it switches to host mode and actively establishes NCM and iAP2 communication with the car head unit to implement CarPlay functionality.
- Data Acquisition Device: In host mode, connects barcode scanners or sensors (HID/CDC) to acquire field data. When connected to PC, switches to device mode, emulating a serial port or USB flash drive to batch upload collected data to the management system.
- USB Storage Device: In host mode, accesses external storage media such as USB flash drives. When connected to PC, switches to MSC device mode for convenient file import/export, suitable for smart speakers, smart recorders and other application scenarios.
Wireless CarPlay Adapter
When powered on, it operates in device mode. After completing necessary authentication, it switches to host mode and actively establishes NCM and iAP2 communication with the car head unit to implement CarPlay functionality.
Data Acquisition Device
In host mode, connects barcode scanners or sensors (HID/CDC) to acquire field data. When connected to PC, switches to device mode, emulating a serial port or USB flash drive to batch upload collected data to the management system.
USB Storage Device
In host mode, accesses external storage media such as USB flash drives. When connected to PC, switches to MSC device mode for convenient file import/export, suitable for smart speakers, smart recorders and other application scenarios.
Development Resources
| Icon | Resource Name | Link |
|---|---|---|
![]() |
FreeRTOS SDK Download | Link |
![]() |
Linux SDK Download | Link |
![]() |
Zephyr SDK Download | Link |
![]() |
FreeRTOS USB Development Guide | Link |
![]() |
Linux USB Development Guide | Link |
![]() |
Zephyr USB Development Guide | Link |
![]() |
Ameba USB Application Cases | Link |
![]() |
Contact Us | Link |
Recommended ICs
| Features | Filter | RTL8720F | RTL8721F | RTL8721Dx | RTL8720E | RTL8710E | RTL8726E | RTL8713E | RTL8730E | RTL872xD | RTL8735B |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Application Processor |
Cortex-M | Cortex-M | Cortex-M | Cortex-M | Cortex-M | Cortex-M | Cortex-M | Cortex-A | Cortex-M | Cortex-M | |
| DSP | N | N | N | N | N | Y | Y | N | N | N | |
| ISP | N | N | N | N | N | N | N | N | N | Y | |
| Arm TrustZone | Y | Y | Y | Y | N | Y | N | Y | Y | Y | |
| Dual Band | N | Y | Y | N | N | N | N | Y | Y | Y | |
| Wi-Fi 6 | Y | Y | N | Y | Y | Y | Y | Y | N | N | |
| R-MESH | Y | Y | Y | N | N | N | N | N | N | N | |
| Ultra-low Power | Y | Y | Y | N | N | N | N | N | Y | Y | |
| Ethernet | N | Y | N | N | N | N | N | N | N | N | |
| BT Dual Mode | N | N | N | N | N | Y | Y | Y | N | N | |
| HMI | N | Y | Y | Y | N | Y | Y | Y | N | N | |
| Audio ADC | N | N | N | N | N | Y | Y | Y | Y | Y | |
| Audio DAC | N | N | N | N | N | Y | Y | Y | Y | Y | |
| SDIO Host | N | Y | N | N | N | N | N | N | N | N | |
| SD/EMMC Host | N | Y | N | N | N | N | N | Y | Y | Y | |
| USB | N | Y | Y | N | N | N | N | Y | Y | Y | |
|
BT Dedicated Antenna |
N | N | N | N | N | N | N | Y | N | N | |
| CAN | N | Y | N | N | N | N | N | N | N | N |
| Features | RTL8721Dx | RTL8730E | RTL872xD | RTL8721F | RTL8735B |
|---|---|---|---|---|---|
| High-Speed Mode (480Mbps) | N | Y | Y | Y | Y |
| Full-Speed Mode (12Mbps) | Y | Y | Y | Y | Y |
| Host Mode | N | Y | Y | Y | Y |
| Device Mode | Y | Y | Y | Y | Y |
| Dual-Role Mode | N | Y | Y | Y | Y |
| Device IN Endpoints | 4 | 4 | 4 | 6 | 4 |
| Device OUT Endpoints | 4 | 4 | 4 | 6 | 4 |
| Host Channels | N | 8 | 8 | 12 | 8 |



