31 #ifndef __USB_DEVICE_DESCRIPTOR_H__ 32 #define __USB_DEVICE_DESCRIPTOR_H__ 37 #define USB_DEVICE_SPECIFIC_BCD_VERSION (0x0200U) 38 #define USB_DEVICE_DEMO_BCD_VERSION (0x0101U) 39 #define USB_DEVICE_MAX_POWER (0x32U) 41 #define USB_CONFIGURE_COUNT (1U) 42 #define USB_DEVICE_STRING_COUNT (4U) 43 #define USB_DEVICE_LANGUAGE_COUNT (1U) 44 #define USB_INTERFACE_COUNT (1U) 46 #define USB_MSC_CONFIGURE_INDEX (1U) 48 #define USB_MSC_ENDPOINT_COUNT (2U) 49 #define USB_MSC_BULK_IN_ENDPOINT (1U) 50 #define USB_MSC_BULK_OUT_ENDPOINT (2U) 53 #define USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL \ 54 (USB_DESCRIPTOR_LENGTH_CONFIGURE + USB_DESCRIPTOR_LENGTH_INTERFACE + \ 55 USB_DESCRIPTOR_LENGTH_ENDPOINT * USB_MSC_ENDPOINT_COUNT) 57 #define HS_MSC_BULK_IN_PACKET_SIZE (512U) 58 #define HS_MSC_BULK_OUT_PACKET_SIZE (512U) 59 #define FS_MSC_BULK_IN_PACKET_SIZE (64U) 60 #define FS_MSC_BULK_OUT_PACKET_SIZE (64U) 62 #define USB_STRING_DESCRIPTOR_HEADER_LENGTH (0x02U) 63 #define USB_STRING_DESCRIPTOR_0_LENGTH (0x02U) 64 #define USB_STRING_DESCRIPTOR_1_LENGTH (56U) 65 #define USB_STRING_DESCRIPTOR_2_LENGTH (32U) 66 #define USB_STRING_DESCRIPTOR_3_LENGTH (32U) 67 #define USB_STRING_DESCRIPTOR_ERROR_LENGTH (32U) 69 #define USB_MSC_INTERFACE_INDEX (0U) 70 #define USB_MSC_INTERFACE_COUNT (1U) 72 #define USB_DEVICE_CLASS (0x00U) 73 #define USB_DEVICE_SUBCLASS (0x00U) 74 #define USB_DEVICE_PROTOCOL (0x00U) 76 #define USB_MSC_CLASS (0x08U) 78 #define USB_MSC_SUBCLASS (0x06U) 80 #define USB_MSC_PROTOCOL (0x50U) 82 extern usb_device_class_struct_t g_UsbDeviceMscConfig;
83 extern usb_status_t USB_DeviceSetSpeed(usb_device_handle handle, uint8_t speed);
85 usb_status_t USB_DeviceGetDeviceDescriptor(usb_device_handle handle,
86 usb_device_get_device_descriptor_struct_t *deviceDescriptor);
88 usb_status_t USB_DeviceGetConfigurationDescriptor(
89 usb_device_handle handle, usb_device_get_configuration_descriptor_struct_t *configurationDescriptor);
91 usb_status_t USB_DeviceGetStringDescriptor(usb_device_handle handle,
92 usb_device_get_string_descriptor_struct_t *stringDescriptor);