The external UDC API allows the application to manage common USB device behavior and receive common USB device events. These controls and events are common to any USB application.

| Declaration | Description |
|---|---|
| udc_start() | Start USB device stack |
| udc_stop() | Stop USB device stack |
|
udc_attach() udc_detach() |
Authorize the device enumeration or not. Enable pull-up on DM or DP. |
| udc_remotewakeup() | Wake-up the USB device |
All UDC callbacks are optional and defined by user in usb_conf.h for each application. When defined, the callbacks will be called by the UDD ISR.
| Define name | Description |
|---|---|
| UDC_VBUS_EVENT(bool b_present) | To notify VBUS level change (only if USB hardware includes VBUS monitoring) |
| UDC_SUSPEND_EVENT() | Called when USB enters in Suspend mode |
| UDC_RESUME_EVENT() | Called when USB wakes-up |
| UDC_SOF_EVENT() | Called for each received SOF each 1ms Note: Available in High and Full Speed mode |
| UDC_REMOTEWAKEUP_ENABLE() | Called when USB host requests to enable/disable remote wake-up feature when the device supports it |
| UDC_REMOTEWAKEUP_DISABLE() | |
| UDC_GET_EXTRA_STRING() | When an extra string descriptor must be supported (other than manufacturer, a product and serial string) |
| UDC_SPECIFIC_REQUEST() | When a specific device setup request must be supported |