USB_COMMON
Detailed Description
Common parts for both HOST and DEVICE USB stacks, see USB device stack library pages for device library documentation.
| Data Structures | |
| struct | USB_ConfigurationDescriptor_TypeDef | 
| USB Configuration Descriptor. | |
| struct | USB_DeviceDescriptor_TypeDef | 
| USB Device Descriptor. | |
| struct | USB_EndpointDescriptor_TypeDef | 
| USB Endpoint Descriptor. | |
| struct | USB_InterfaceDescriptor_TypeDef | 
| USB Interface Descriptor. | |
| struct | USB_Setup_TypeDef | 
| USB Setup request package. | |
| struct | USB_StringDescriptor_TypeDef | 
| USB String Descriptor. | |
| Typedefs | |
| typedef unsigned short | char16_t | 
| typedef int(* | USB_XferCompleteCb_TypeDef ) ( USB_Status_TypeDef status, uint32_t xferred, uint32_t remaining) | 
| USB transfer callback function. | |
| typedef void(* | USBTIMER_Callback_TypeDef ) (void) | 
| USBTIMER callback function. | |
| Enumerations | |
| enum | USB_Status_TypeDef
         
         { USB_STATUS_OK = 0, USB_STATUS_REQ_ERR = -1, USB_STATUS_EP_BUSY = -2, USB_STATUS_REQ_UNHANDLED = -3, USB_STATUS_ILLEGAL = -4, USB_STATUS_EP_STALLED = -5, USB_STATUS_EP_ABORTED = -6, USB_STATUS_EP_ERROR = -7, USB_STATUS_EP_NAK = -8, USB_STATUS_DEVICE_UNCONFIGURED = -9, USB_STATUS_DEVICE_SUSPENDED = -10, USB_STATUS_DEVICE_RESET = -11, USB_STATUS_TIMEOUT = -12, USB_STATUS_DEVICE_REMOVED = -13, USB_STATUS_HC_BUSY = -14, USB_STATUS_DEVICE_MALFUNCTION = -15, USB_STATUS_PORT_OVERCURRENT = -16 } | 
| USB transfer status enumerator. | |
| Functions | |
| char * | USB_GetErrorMsgString (int error) | 
| Return an error message string for a given error code. | |
| void | USB_PrintErrorMsgString (char *pre, int error) | 
| Format and print a text string given an error code, prepends an optional user supplied leader string. | |
| int | USB_PRINTF (const char *format,...) | 
| Transmit "printf" formated data on the debug serial port. | |
| int | USB_PUTCHAR (char c) | 
| Transmit a single char on the debug serial port. | |
| void | USB_PUTS (const char *p) | 
| Transmit a zero terminated string on the debug serial port. | |
| void | USBTIMER_DelayMs (uint32_t msec) | 
| Active wait millisecond delay function. Can also be used inside interrupt handlers. | |
| void | USBTIMER_DelayUs (uint32_t usec) | 
| Active wait microsecond delay function. Can also be used inside interrupt handlers. | |
| void | USBTIMER_Init (void) | 
| Activate the hardware timer used to pace the 1 millisecond timer system. | |
| void | USBTIMER_Start (uint32_t id, uint32_t timeout, USBTIMER_Callback_TypeDef callback) | 
| Start a timer. | |
| void | USBTIMER_Stop (uint32_t id) | 
| Stop a timer. | |
Macro Definition Documentation
| #define CLEAR_FEATURE 1 | 
Standard setup request CLEAR_FEATURE.
        Definition at line
        
         90
        
        of file
        
         em_usb.h
        
        .
       
Referenced by MSDD_SetupCmd() .
| #define CONFIG_DESC_BM_REMOTEWAKEUP 0x20 | 
Configuration descriptor attribute macro.
        Definition at line
        
         193
        
        of file
        
         em_usb.h
        
        .
       
| #define CONFIG_DESC_BM_RESERVED_D7 0x80 | 
Configuration descriptor attribute macro.
        Definition at line
        
         195
        
        of file
        
         em_usb.h
        
        .
       
| #define CONFIG_DESC_BM_SELFPOWERED 0x40 | 
Configuration descriptor attribute macro.
        Definition at line
        
         194
        
        of file
        
         em_usb.h
        
        .
       
| #define CONFIG_DESC_BM_TRANSFERTYPE 0x03 | 
Configuration descriptor transfer type bitmask.
        Definition at line
        
         196
        
        of file
        
         em_usb.h
        
        .
       
Referenced by USBD_Init() .
| #define CONFIG_DESC_MAXPOWER_mA | ( | 
            x
            | ) | (((x) + 1) / 2) | 
Configuration descriptor power macro.
        Definition at line
        
         197
        
        of file
        
         em_usb.h
        
        .
       
| #define DEVICE_IS_SELFPOWERED 0x0001 | 
Standard request GET_STATUS bitmask.
        Definition at line
        
         199
        
        of file
        
         em_usb.h
        
        .
       
| #define GET_CONFIGURATION 8 | 
Standard setup request GET_CONFIGURATION.
        Definition at line
        
         95
        
        of file
        
         em_usb.h
        
        .
       
| #define GET_DESCRIPTOR 6 | 
Standard setup request GET_DESCRIPTOR.
        Definition at line
        
         93
        
        of file
        
         em_usb.h
        
        .
       
Referenced by HIDKBD_SetupCmd() , and USBX_SetupCmdCb() .
| #define GET_INTERFACE 10 | 
Standard setup request GET_INTERFACE.
        Definition at line
        
         97
        
        of file
        
         em_usb.h
        
        .
       
| #define GET_STATUS 0 | 
Standard setup request GET_STATUS.
        Definition at line
        
         89
        
        of file
        
         em_usb.h
        
        .
       
| #define HUB_FEATURE_C_PORT_CONNECTION 16 | 
HUB class request CLEAR/SET_PORT_FEATURE feature selector.
        Definition at line
        
         206
        
        of file
        
         em_usb.h
        
        .
       
| #define HUB_FEATURE_C_PORT_RESET 20 | 
HUB class request CLEAR/SET_PORT_FEATURE feature selector.
        Definition at line
        
         207
        
        of file
        
         em_usb.h
        
        .
       
| #define HUB_FEATURE_PORT_INDICATOR 22 | 
HUB class request CLEAR/SET_PORT_FEATURE feature selector.
        Definition at line
        
         208
        
        of file
        
         em_usb.h
        
        .
       
| #define HUB_FEATURE_PORT_POWER 8 | 
HUB class request CLEAR/SET_PORT_FEATURE feature selector.
        Definition at line
        
         205
        
        of file
        
         em_usb.h
        
        .
       
| #define HUB_FEATURE_PORT_RESET 4 | 
HUB class request CLEAR/SET_PORT_FEATURE feature selector.
        Definition at line
        
         204
        
        of file
        
         em_usb.h
        
        .
       
| #define PORT_FULL_SPEED 1 | 
Full speed return value for USBH_GetPortSpeed().
        Definition at line
        
         241
        
        of file
        
         em_usb.h
        
        .
       
Referenced by MSDBOT_Init() .
| #define PORT_LOW_SPEED 2 | 
Low speed return value for USBH_GetPortSpeed().
        Definition at line
        
         242
        
        of file
        
         em_usb.h
        
        .
       
| #define REMOTE_WAKEUP_ENABLED 0x0002 | 
Standard request GET_STATUS bitmask.
        Definition at line
        
         200
        
        of file
        
         em_usb.h
        
        .
       
| #define SET_ADDRESS 5 | 
Standard setup request SET_ADDRESS.
        Definition at line
        
         92
        
        of file
        
         em_usb.h
        
        .
       
| #define SET_CONFIGURATION 9 | 
Standard setup request SET_CONFIGURATION.
        Definition at line
        
         96
        
        of file
        
         em_usb.h
        
        .
       
| #define SET_DESCRIPTOR 7 | 
Standard setup request SET_DESCRIPTOR.
        Definition at line
        
         94
        
        of file
        
         em_usb.h
        
        .
       
| #define SET_FEATURE 3 | 
Standard setup request SET_FEATURE.
        Definition at line
        
         91
        
        of file
        
         em_usb.h
        
        .
       
| #define SET_INTERFACE 11 | 
Standard setup request SET_INTERFACE.
        Definition at line
        
         98
        
        of file
        
         em_usb.h
        
        .
       
| #define SILABS_USB_VID 0x10C4 | 
Silicon Labs Vendor ID, supplied by USB-IF.
        Definition at line
        
         65
        
        of file
        
         em_usb.h
        
        .
       
| #define STATIC_CONST_STRING_DESC | ( | 
            _name,
            | |
| 
            ...
            | |||
| ) | 
           em_common.h:177
          
         
           em_common.h:188
          
         
           em_common.h:170
          
         
           em_common.h:180
          
         
           em_common.h:163
          
         
        Macro for creating USB compliant UTF-16LE UNICODE string descriptors.
        
        Example: STATIC_CONST_STRING_DESC(iManufacturer, 'E','n','e','r','g','y',' ','M','i','c','r','o',' ','A','S');
       
- Note
- The size of the resulting struct will be two byte larger than a USB string descriptor. This is to accommodate a terminating null char for the string. The value assigned to the 'len' member does not take this into account and is therefore correct usb wise.
        Definition at line
        
         268
        
        of file
        
         em_usb.h
        
        .
       
| #define STATIC_CONST_STRING_DESC_LANGID | ( | 
            _name,
            | |
| 
            x,
            | |||
| 
            y
            | |||
| ) | 
           em_common.h:177
          
         
           em_common.h:188
          
         
           em_common.h:170
          
         
           em_common.h:180
          
         
           em_common.h:163
          
         
        Macro for creating USB compliant language string descriptors.
        
        Example:
        
         STATIC_CONST_STRING_DESC_LANGID(langID, 0x04, 0x09)
        
        ;
       
        Definition at line
        
         291
        
        of file
        
         em_usb.h
        
        .
       
| #define STATIC_UBUF | ( | 
            x,
            | |
| 
            y
            | |||
| ) | SL_ALIGN (4) static uint8_t x[((y) + 3) & ~3] SL_ATTRIBUTE_ALIGN (4) | 
        Macro for creating WORD (4 byte) aligned static uint8_t arrays with size which is a multiple of WORD size.
        
        Example:
        
        
         STATIC_UBUF(rxBuffer, 37)
        
        ; => static uint8_t rxBuffer[40];
       
        Definition at line
        
         320
        
        of file
        
         em_usb.h
        
        .
       
Referenced by HIDKBD_SetupCmd() .
| #define SYNCH_FRAME 12 | 
Standard setup request SYNCH_FRAME.
        Definition at line
        
         99
        
        of file
        
         em_usb.h
        
        .
       
| #define UBUF | ( | 
            x,
            | |
| 
            y
            | |||
| ) | SL_ALIGN (4) uint8_t x[((y) + 3) & ~3] SL_ATTRIBUTE_ALIGN (4) | 
        Macro for creating WORD (4 byte) aligned uint8_t array with size which is a multiple of WORD size.
        
        Example:
        
        
         UBUF(rxBuffer, 37)
        
        ; => uint8_t rxBuffer[40];
       
        Definition at line
        
         314
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_GET_CUR 0x81 | 
Audio class setup request GET_CUR.
        Definition at line
        
         114
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_GET_CUR 0x81 | 
Audio class setup request GET_CUR.
        Definition at line
        
         114
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_GET_MAX 0x83 | 
Audio class setup request GET_MAX.
        Definition at line
        
         118
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_GET_MEM 0x85 | 
Audio class setup request GET_MEM.
        Definition at line
        
         122
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_GET_MIN 0x82 | 
Audio class setup request GET_MIN.
        Definition at line
        
         116
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_GET_RES 0x84 | 
Audio class setup request GET_RES.
        Definition at line
        
         120
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_GET_STAT 0xFF | 
Audio class setup request GET_STAT.
        Definition at line
        
         123
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_SET_CUR 0x01 | 
Audio class setup request SET_CUR.
        Definition at line
        
         113
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_SET_MAX 0x03 | 
Audio class setup request SET_MAX.
        Definition at line
        
         117
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_SET_MEM 0x05 | 
Audio class setup request SET_MEM.
        Definition at line
        
         121
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_SET_MIN 0x02 | 
Audio class setup request SET_MIN.
        Definition at line
        
         115
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_AUDIO_SET_RES 0x04 | 
Audio class setup request SET_RES.
        Definition at line
        
         119
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_AS_GENERAL_DESCRIPTOR 1 | 
Audio Class-Specific AS Interface General descriptor.
        Definition at line
        
         151
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_AS_GENERAL_DESCSIZE 7 | 
Audio Class-Specific AS Interface General desc size.
        Definition at line
        
         169
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_EP_GENERAL_DESCRIPTOR 1 | 
Audio Class-Specific general descriptor subtype code.
        Definition at line
        
         150
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_EP_GENERAL_DESCSIZE 7 | 
Audio Class-Specific general descriptor subtype size.
        Definition at line
        
         168
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_EXTENSION_UNIT_DESCRIPTOR 8 | 
Audio Class-Specific AC Interface Extension desc.
        Definition at line
        
         149
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_FEATURE_UNIT_DESCRIPTOR 6 | 
Audio Class-Specific AC Interface Feature desc.
        Definition at line
        
         147
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_FORMAT_TYPE_DESCRIPTOR 2 | 
Audio Class-Specific AS Interface Format Type desc.
        Definition at line
        
         152
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_HEADER_DESCRIPTOR 1 | 
Audio Class-Specific AC Interface Header descriptor.
        Definition at line
        
         142
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_INPUT_TERMINAL_DESCRIPTOR 2 | 
Audio Class-Specific AC Interface Input Terminal desc.
        Definition at line
        
         143
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_INPUT_TERMINAL_DESCSIZE 12 | 
Audio Input Terminal descriptor size.
        Definition at line
        
         166
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_MIXER_UNIT_DESCRIPTOR 4 | 
Audio Class-Specific AC Interface Mixer descriptor.
        Definition at line
        
         145
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_OUTPUT_TERMINAL_DESCRIPTOR 3 | 
Audio Class-Specific AC Interface Output Terminal desc.
        Definition at line
        
         144
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_OUTPUT_TERMINAL_DESCSIZE 9 | 
Audio Output Terminal descriptor size.
        Definition at line
        
         167
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_PROCESSING_UNIT_DESCRIPTOR 7 | 
Audio Class-Specific AC Interface Processing desc.
        Definition at line
        
         148
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_SELECTOR_UNIT_DESCRIPTOR 5 | 
Audio Class-Specific AC Interface Selector desc.
        Definition at line
        
         146
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CA_STD_AS_ENDPOINT_DESCSZIE 9 | 
Audio-class standard audio stream descriptor size.
        Definition at line
        
         170
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CDC_ACM_FND_DESCSIZE 4 | 
CDC Abstract Control Management functional descriptor size.
        Definition at line
        
         165
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CDC_CALLMNG_FND_DESCSIZE 5 | 
CDC Call Management functional descriptor size.
        Definition at line
        
         164
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CDC_GETLINECODING 0x21 | 
CDC class setup request GET_LINE_CODING.
        Definition at line
        
         108
        
        of file
        
         em_usb.h
        
        .
       
Referenced by CDC_SetupCmd() .
| #define USB_CDC_HEADER_FND_DESCSIZE 5 | 
CDC Header functional descriptor size.
        Definition at line
        
         163
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CDC_SETCTRLLINESTATE 0x22 | 
CDC class setup request SET_CONTROL_LINE_STATE.
        Definition at line
        
         109
        
        of file
        
         em_usb.h
        
        .
       
Referenced by CDC_SetupCmd() .
| #define USB_CDC_SETLINECODING 0x20 | 
CDC class setup request SET_LINE_CODING.
        Definition at line
        
         107
        
        of file
        
         em_usb.h
        
        .
       
Referenced by CDC_SetupCmd() .
| #define USB_CLASS_AUDIO 1 | 
Audio interface class code.
        Definition at line
        
         231
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_AUDIO_CONTROL 1 | 
Audio subclass code for control interface.
        Definition at line
        
         232
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_AUDIO_MIDISTREAMING 3 | 
Audio subclass code for midi streaming interface.
        Definition at line
        
         234
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_AUDIO_STREAMING 2 | 
Audio subclass code for streaming interface.
        Definition at line
        
         233
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_CDC 2 | 
CDC device/interface class code.
        Definition at line
        
         210
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_CDC_ACM 2 | 
CDC Abstract Control Model interface subclass code.
        Definition at line
        
         212
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_CDC_ACMFN 2 | 
CDC class Abstract Control Management Functional Descriptor subtype.
        Definition at line
        
         215
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_CDC_CMNGFN 1 | 
CDC class Call Management Functional Descriptor subtype.
        Definition at line
        
         214
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_CDC_DATA 0x0A | 
CDC Data interface class code.
        Definition at line
        
         211
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_CDC_HFN 0 | 
CDC class Header Functional Descriptor subtype.
        Definition at line
        
         213
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_CDC_UNIONFN 6 | 
CDC class Union Functional Descriptor subtype.
        Definition at line
        
         216
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_HID 3 | 
HID device/interface class code.
        Definition at line
        
         218
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_HID_KEYBOARD 1 | 
HID keyboard interface protocol code.
        Definition at line
        
         219
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_HID_MOUSE 2 | 
HID mouse interface protocol code.
        Definition at line
        
         220
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_HUB 9 | 
HUB device/interface class code.
        Definition at line
        
         222
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_MISC_COMMON_SUBCLASS 2 | 
MISCELLANEOUS Common sub class code.
        Definition at line
        
         238
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_MISC_IAD_PROTOCOL 1 | 
MISCELLANEOUS Interface Association Descriptor protocol code.
        Definition at line
        
         239
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_MISCELLANEOUS 0xEF | 
MISCELLANEOUS device class code.
        Definition at line
        
         237
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_MSD 8 | 
MSD device/interface class code.
        Definition at line
        
         224
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_MSD_BOT_TRANSPORT 0x50 | 
MSD Bulk Only Transport protocol.
        Definition at line
        
         225
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_MSD_CSW_CMDFAILED 1 | 
MSD BOT Command status wrapper command failed code.
        Definition at line
        
         228
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_MSD_CSW_CMDPASSED 0 | 
MSD BOT Command status wrapper command passed code.
        Definition at line
        
         227
        
        of file
        
         em_usb.h
        
        .
       
Referenced by MSDBOT_Xfer() .
| #define USB_CLASS_MSD_CSW_PHASEERROR 2 | 
MSD BOT Command status wrapper cmd phase error code.
        Definition at line
        
         229
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CLASS_MSD_SCSI_CMDSET 6 | 
MSD Subclass SCSI transparent command set.
        Definition at line
        
         226
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CONFIG_DESCRIPTOR 2 | 
CONFIGURATION descriptor value.
        Definition at line
        
         127
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CONFIG_DESCSIZE 9 | 
Configuration descriptor size.
        Definition at line
        
         155
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CS_ENDPOINT_DESCRIPTOR 0x25 | 
Audio Class-specific endpoint Descriptor Type.
        Definition at line
        
         140
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_CS_INTERFACE_DESCRIPTOR 0x24 | 
Audio Class-specific interface Descriptor Type.
        Definition at line
        
         139
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_DEVICE_DESCRIPTOR 1 | 
DEVICE descriptor value.
        Definition at line
        
         126
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_DEVICE_DESCSIZE 18 | 
Device descriptor size.
        Definition at line
        
         154
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_DEVICE_QUALIFIER_DESCRIPTOR 6 | 
DEVICE_QUALIFIER descriptor value.
        Definition at line
        
         132
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_DEVICE_QUALIFIER_DESCSIZE 10 | 
Device qualifier descriptor size.
        Definition at line
        
         158
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_DPLL_SRC_HFXO 2 | 
Use HFXO as DPLL clock source.
        Definition at line
        
         245
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_DPLL_SRC_LFXO 1 | 
Use LFXO as DPLL clock source.
        Definition at line
        
         244
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_ENDPOINT_DESCRIPTOR 5 | 
| #define USB_ENDPOINT_DESCSIZE 7 | 
Endpoint descriptor size.
        Definition at line
        
         157
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_EP_DIR_IN 0x80 | 
Endpoint direction mask.
        Definition at line
        
         187
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_EPNUM_MASK 0x0F | 
| #define USB_EPSYNC_ADAPTIVE (2 << 2) | 
Endpoint synchronization type, adaptive.
        Definition at line
        
         185
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_EPSYNC_ASYNC (1 << 2) | 
Endpoint synchronization type, asynchronous.
        Definition at line
        
         184
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_EPSYNC_NO (0 << 2) | 
Endpoint synchronization type, none.
        Definition at line
        
         183
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_EPSYNC_SYNC (3 << 2) | 
Endpoint synchronization type, synchronous.
        Definition at line
        
         186
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_EPTYPE_BULK 2 | 
Endpoint type bulk.
        Definition at line
        
         181
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_EPTYPE_CTRL 0 | 
| #define USB_EPTYPE_INTR 3 | 
Endpoint type interrupt.
        Definition at line
        
         182
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_EPTYPE_ISOC 1 | 
Endpoint type isochron.
        Definition at line
        
         180
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_FEATURE_DEVICE_REMOTE_WAKEUP 1 | 
Standard request CLEAR/SET_FEATURE bitmask.
        Definition at line
        
         202
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_FEATURE_ENDPOINT_HALT 0 | 
Standard request CLEAR/SET_FEATURE bitmask.
        Definition at line
        
         201
        
        of file
        
         em_usb.h
        
        .
       
Referenced by MSDD_SetupCmd() .
| #define USB_FS_BULK_EP_MAXSIZE 64 | 
The max size of full speed bulk endpoints.
        Definition at line
        
         177
        
        of file
        
         em_usb.h
        
        .
       
Referenced by USBX_inXferCompleteCb() .
| #define USB_FS_CTRL_EP_MAXSIZE 64 | 
The max size of full speed control endpoints.
        Definition at line
        
         175
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_FS_INTR_EP_MAXSIZE 64 | 
The max size of full speed interrupt endpoints.
        Definition at line
        
         176
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_FS_ISOC_EP_MAXSIZE 1023 | 
The max size of full speed isochronous endpoints.
        Definition at line
        
         178
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_HID_DESCRIPTOR 0x21 | 
| #define USB_HID_DESCSIZE 9 | 
| #define USB_HID_GET_IDLE 0x02 | 
HID class setup request GET_IDLE.
        Definition at line
        
         103
        
        of file
        
         em_usb.h
        
        .
       
Referenced by HIDKBD_SetupCmd() .
| #define USB_HID_GET_REPORT 0x01 | 
HID class setup request GET_REPORT.
        Definition at line
        
         102
        
        of file
        
         em_usb.h
        
        .
       
Referenced by HIDKBD_SetupCmd() .
| #define USB_HID_REPORT_DESCRIPTOR 0x22 | 
HID REPORT descriptor value.
        Definition at line
        
         138
        
        of file
        
         em_usb.h
        
        .
       
Referenced by HIDKBD_SetupCmd() .
| #define USB_HID_SET_IDLE 0x0A | 
HID class setup request SET_IDLE.
        Definition at line
        
         105
        
        of file
        
         em_usb.h
        
        .
       
Referenced by HIDKBD_SetupCmd() .
| #define USB_HID_SET_PROTOCOL 0x0B | 
HID class setup request SET_PROTOCOL.
        Definition at line
        
         106
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_HID_SET_REPORT 0x09 | 
HID class setup request SET_REPORT.
        Definition at line
        
         104
        
        of file
        
         em_usb.h
        
        .
       
Referenced by HIDKBD_SetupCmd() .
| #define USB_HUB_DESCRIPTOR 0x29 | 
HUB descriptor value.
        Definition at line
        
         141
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_INTERFACE_ASSOCIATION_DESCRIPTOR 11 | 
INTERFACE_ASSOCIATION descriptor value.
        Definition at line
        
         135
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_INTERFACE_ASSOCIATION_DESCSIZE 8 | 
INTERFACE_ASSOCIATION descriptor size.
        Definition at line
        
         160
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_INTERFACE_DESCRIPTOR 4 | 
| #define USB_INTERFACE_DESCSIZE 9 | 
Interface descriptor size.
        Definition at line
        
         156
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_INTERFACE_POWER_DESCRIPTOR 8 | 
INTERFACE_POWER descriptor value.
        Definition at line
        
         134
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_LANGID_ENUS 0x0409 | 
English-United States language id.
        Definition at line
        
         190
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_LS_CTRL_EP_MAXSIZE 8 | 
The max size of low speed control endpoints.
        Definition at line
        
         173
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_LS_INTR_EP_MAXSIZE 8 | 
The max size of low speed interrupt endpoints.
        Definition at line
        
         174
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_MAX_DEVICE_ADDRESS 127 | 
Maximum allowable device address.
        Definition at line
        
         191
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_MAX_STRING_DESCRIPTOR_CHARS 126 | 
Maximum STRING descriptor bString length.
        Definition at line
        
         129
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_MSD_BOTRESET 0xFF | 
MSD class setup request Bulk only transfer reset.
        Definition at line
        
         110
        
        of file
        
         em_usb.h
        
        .
       
Referenced by MSDD_SetupCmd() .
| #define USB_MSD_GETMAXLUN 0xFE | 
MSD class setup request Get Max LUN.
        Definition at line
        
         111
        
        of file
        
         em_usb.h
        
        .
       
Referenced by MSDD_SetupCmd() .
| #define USB_OTHER_SPEED_CONFIG_DESCRIPTOR 7 | 
OTHER_SPEED_CONFIGURATION descriptor value.
        Definition at line
        
         133
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_OTHER_SPEED_CONFIG_DESCSIZE 9 | 
Device other speed configuration descriptor size.
        Definition at line
        
         159
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_SETUP_DIR_D2H 0x80 | 
Setup request data stage IN direction mask.
        Definition at line
        
         71
        
        of file
        
         em_usb.h
        
        .
       
Referenced by USBX_SetupCmdCb() .
| #define USB_SETUP_DIR_H2D 0x00 | 
Setup request data stage OUT direction mask.
        Definition at line
        
         72
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_SETUP_DIR_IN 1 | 
Setup request data stage IN direction value.
        Definition at line
        
         69
        
        of file
        
         em_usb.h
        
        .
       
Referenced by CDC_SetupCmd() , HIDKBD_SetupCmd() , and MSDD_SetupCmd() .
| #define USB_SETUP_DIR_MASK 0x80 | 
Setup request data stage direction mask.
        Definition at line
        
         70
        
        of file
        
         em_usb.h
        
        .
       
Referenced by USBD_Init() .
| #define USB_SETUP_DIR_OUT 0 | 
Setup request data stage OUT direction value.
        Definition at line
        
         68
        
        of file
        
         em_usb.h
        
        .
       
Referenced by MSDD_SetupCmd() .
| #define USB_SETUP_PKT_SIZE 8 | 
Setup request packet size.
        Definition at line
        
         188
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_SETUP_RECIPIENT_DEVICE 0 | 
Setup request device recipient value.
        Definition at line
        
         83
        
        of file
        
         em_usb.h
        
        .
       
Referenced by USBX_SetupCmdCb() .
| #define USB_SETUP_RECIPIENT_ENDPOINT 2 | 
Setup request endpoint recipient value.
        Definition at line
        
         85
        
        of file
        
         em_usb.h
        
        .
       
Referenced by MSDD_SetupCmd() .
| #define USB_SETUP_RECIPIENT_INTERFACE 1 | 
Setup request interface recipient value.
        Definition at line
        
         84
        
        of file
        
         em_usb.h
        
        .
       
Referenced by CDC_SetupCmd() , HIDKBD_SetupCmd() , MSDD_SetupCmd() , and USBX_SetupCmdCb() .
| #define USB_SETUP_RECIPIENT_OTHER 3 | 
Setup request other recipient value.
        Definition at line
        
         86
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_SETUP_TYPE_CLASS 1 | 
Class setup request value.
        Definition at line
        
         76
        
        of file
        
         em_usb.h
        
        .
       
Referenced by CDC_SetupCmd() , HIDKBD_SetupCmd() , and MSDD_SetupCmd() .
| #define USB_SETUP_TYPE_CLASS_MASK 0x20 | 
Class setup request mask.
        Definition at line
        
         79
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_SETUP_TYPE_STANDARD 0 | 
Standard setup request value.
        Definition at line
        
         75
        
        of file
        
         em_usb.h
        
        .
       
Referenced by HIDKBD_SetupCmd() , MSDD_SetupCmd() , and USBX_SetupCmdCb() .
| #define USB_SETUP_TYPE_STANDARD_MASK 0x00 | 
Standard setup request mask.
        Definition at line
        
         78
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_SETUP_TYPE_VENDOR 2 | 
Vendor setup request value.
        Definition at line
        
         77
        
        of file
        
         em_usb.h
        
        .
       
Referenced by USBX_SetupCmdCb() .
| #define USB_SETUP_TYPE_VENDOR_MASK 0x40 | 
Vendor setup request mask.
        Definition at line
        
         80
        
        of file
        
         em_usb.h
        
        .
       
Referenced by USBX_SetupCmdCb() .
| #define USB_SMARTCARD_DESCRIPTOR 0x21 | 
Smartcard usb-ccid-specific Descriptor Type.
        Definition at line
        
         137
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_SMARTCARD_DESCSIZE 54 | 
CCID descriptor size.
        Definition at line
        
         162
        
        of file
        
         em_usb.h
        
        .
       
| #define USB_STRING_DESCRIPTOR 3 | 
STRING descriptor value.
        Definition at line
        
         128
        
        of file
        
         em_usb.h
        
        .
       
Referenced by USBX_SetupCmdCb() .
Typedef Documentation
| typedef unsigned short char16_t | 
Data type used for UTF-16LE formatted USB string descriptors.
        Definition at line
        
         251
        
        of file
        
         em_usb.h
        
        .
       
| typedef int(* USB_XferCompleteCb_TypeDef) ( USB_Status_TypeDef status, uint32_t xferred, uint32_t remaining) | 
USB transfer callback function.
The callback function is called when a transfer has completed. An application should check the status, xferred and optionally the remaining parameters before deciding if the transfer is usable. In the case where the transfer is part of a control request data stage, the callback function should return an appropriate USB_Status_TypeDef status.
- Parameters
- 
         [in] statusThe transfer status. See USB_Status_TypeDef . [in] xferredNumber of bytes actually transferred. [in] remainingNumber of bytes not transferred. 
- Returns
- USB_STATUS_OK on success, else an appropriate error code.
        Definition at line
        
         652
        
        of file
        
         em_usb.h
        
        .
       
| typedef void(* USBTIMER_Callback_TypeDef) (void) | 
USBTIMER callback function.
The callback function is called when an USBTIMER has expired. The callback is done with interrupts disabled.
        Definition at line
        
         662
        
        of file
        
         em_usb.h
        
        .
       
Enumeration Type Documentation
| enum USB_Status_TypeDef | 
USB transfer status enumerator.
        Definition at line
        
         323
        
        of file
        
         em_usb.h
        
        .
       
Function Documentation
| char* USB_GetErrorMsgString | ( | int | 
            error
            | ) | 
Return an error message string for a given error code.
- Parameters
- 
         [in] errorError code, see USB_Status_TypeDef . 
- Returns
- Error message string pointer.
        Definition at line
        
         73
        
        of file
        
         em_usbhal.c
        
        .
       
Referenced by USB_PrintErrorMsgString() .
| void USB_PrintErrorMsgString | ( | char * | 
            pre,
            | 
| int | 
            error
            | ||
| ) | 
Format and print a text string given an error code, prepends an optional user supplied leader string.
- Parameters
- 
         [in] preOptional leader string to prepend to error message string. [in] errorError code, see USB_Status_TypeDef . 
        Definition at line
        
         94
        
        of file
        
         em_usbhal.c
        
        .
       
References USB_GetErrorMsgString() , USB_PRINTF() , and USB_STATUS_OK .
| int USB_PRINTF | ( | const char * | 
            format,
            | 
| 
            ...
            | |||
| ) | 
Transmit "printf" formated data on the debug serial port.
- Note
- This function is enabled with #define USB_USE_PRINTF when configuring the protocol stack in "usbconfig.h". This is convenient when debugging code, no need to remove use of this function when debugging has completed.
- Parameters
- 
         [in] formatFormat string (as in printf). No floating point format support. 
- Returns
- Number of chars transmitted.
Referenced by MSDH_Init() , and USB_PrintErrorMsgString() .
| int USB_PUTCHAR | ( | char | 
            c
            | ) | 
Transmit a single char on the debug serial port.
- Note
- This function is enabled with #define DEBUG_USB_API when configuring the protocol stack in "usbconfig.h". This is convenient when debugging code, no need to remove use of this function when debugging has completed.
- Parameters
- 
         [in] cChar to transmit. 
- Returns
- The char transmitted.
| void USB_PUTS | ( | const char * | 
            p
            | ) | 
Transmit a zero terminated string on the debug serial port.
- Note
- This function is enabled with #define DEBUG_USB_API when configuring the protocol stack in "usbconfig.h". This is convenient when debugging code, no need to remove use of this function when debugging has completed.
- Parameters
- 
         [in] pPointer to string to transmit. 
| void USBTIMER_DelayMs | ( | uint32_t | 
            msec
            | ) | 
Active wait millisecond delay function. Can also be used inside interrupt handlers.
- Parameters
- 
         [in] msecNumber of milliseconds to wait. 
        Definition at line
        
         154
        
        of file
        
         em_usbtimer.c
        
        .
       
Referenced by MSDH_Init() .
| void USBTIMER_DelayUs | ( | uint32_t | 
            usec
            | ) | 
Active wait microsecond delay function. Can also be used inside interrupt handlers.
- Parameters
- 
         [in] usecNumber of microseconds to wait. 
        Definition at line
        
         174
        
        of file
        
         em_usbtimer.c
        
        .
       
| void USBTIMER_Init | ( | void | 
            | ) | 
Activate the hardware timer used to pace the 1 millisecond timer system.
Call this function whenever the HFPERCLK frequency is changed. This function is initially called by HOST and DEVICE stack xxxx_Init() functions.
        Definition at line
        
         205
        
        of file
        
         em_usbtimer.c
        
        .
       
References CMU_ClockEnable() , CMU_ClockFreqGet() , cmuClock_HFPER , TIMER_InitCC_TypeDef::mode , TIMER_CompareSet() , TIMER_CounterGet() , TIMER_Init() , TIMER_INIT_DEFAULT , TIMER_InitCC() , TIMER_INITCC_DEFAULT , TIMER_IntClear() , TIMER_IntEnable() , TIMER_TopSet() , and timerCCModeCompare .
Referenced by USBD_Init() .
| void USBTIMER_Start | ( | uint32_t | 
            id,
            | 
| uint32_t | 
            timeout,
            | ||
| USBTIMER_Callback_TypeDef | 
            callback
            | ||
| ) | 
Start a timer.
If the timer is already running, it will be restarted with new timeout.
- Parameters
- 
         [in] idTimer id (0..). [in] timeoutNumber of milliseconds before timer will elapse. [in] callbackFunction to be called on timer elapse, ref. USBTIMER_Callback_TypeDef . 
        Definition at line
        
         249
        
        of file
        
         em_usbtimer.c
        
        .
       
References CORE_DECLARE_IRQ_STATE , CORE_ENTER_ATOMIC , CORE_EXIT_ATOMIC , and USBTIMER_Stop() .
Referenced by CDC_StateChangeEvent() , and HIDKBD_StateChangeEvent() .
| void USBTIMER_Stop | ( | uint32_t | 
            id
            | ) | 
Stop a timer.
- Parameters
- 
         [in] idTimer id (0..). 
        Definition at line
        
         311
        
        of file
        
         em_usbtimer.c
        
        .
       
References CORE_DECLARE_IRQ_STATE , CORE_ENTER_ATOMIC , and CORE_EXIT_ATOMIC .
Referenced by CDC_StateChangeEvent() , HIDKBD_SetupCmd() , HIDKBD_StateChangeEvent() , and USBTIMER_Start() .