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.