Overview
DRD (Dual-Role Device) refers to USB devices capable of dynamically switching between host and device roles, providing enhanced flexibility for diverse application scenarios, e.g.:
Storage devices
Host mode: Connect to USB drives/printers
Device mode: Connect to PCs/mobile devices
Automotive devices, e.g., CarPlay devices
Industrial IoT devices: Flexible role switching between sensors (device) and controllers (host)
SDK provides a DRD reference implementation based on standard MSC host/device class drivers with following features:
Supports MSC device mode:
BOT (Bulk-Only Transport) protocol
SD card storage medium
Fully customizable descriptors
Supports MSC host mode:
FAT32-formatted MSC device support
Supports role switch from MSC device to MSC host
No SD card hot-swap support
No USB hot-plug support
Class Driver
MSC host, refer to Mass Storage Host Solution。
MSC device, refer to Mass Storage Device Solution。
Application Example
Location: {SDK}/component/example/usb/usb_drd
This example defines a dual-role mass storage device with runtime role switching capability, refer to the README.md file in the example directory for details.
This example serves as a reference implementation for USB DRD applcations.