The USB SW stack in MCU+ SDK is shown below.
There are three layers as listed below,
We encourage customers to use USB peripheral from tinyUSB APIs. The USB CDC Echo Example is using the CDC class API from TinyUSB. This way, customers can easily adapt to other TinyUSB examples.
For advanced customers or 3P USB stack vendors, refer to the USB device driver references listed below.
TinyUSB is an open-source cross-platform USB Host/Device stack for embedded system, designed to be memory-safe with no dynamic allocation and thread-safe with all interrupt events are deferred then handled in the non-ISR task function.
Below features are supported in the SDK
The USB device driver is the USB HW specific software component that provides a programming abstraction to the Cadence USB IP included in the SOC and supports below features,
The SoC porting layer for USB device driver is the glue layer between the SoC and the USB device driver and does the below,
Folder/Files | Description |
---|---|
${SDK_INSTALL_PATH}/source/usb/tinyusb | |
config/ | TinyUSB Stack configuration |
portable/ | TinyUSB Stack porting |
tinyusb-stack/ | TinyUSB Stack source files |
${SDK_INSTALL_PATH}/source/usb/cdn | |
core_driver/ | Cadence USB core driver source files |
doc/ | Cadence USB core driver documents |
include/ | Cadence USB core driver Soc porting layer API header files |
soc/ | Cadence USB core driver Soc porting layer source files |
References |
---|
SOC Porting Layer |
USB CDC Echo Example |
TinyUSB |
TinyUSB Github Project |
USB Device Driver |
USB Device Driver Quick Start Guide |
USB Device Driver APIs |
USB Device Driver User's Guide |
USB Device Driver Porting Guide |
SOC Porting Layer |
APIs for USB |