⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 descriptor.h

📁 smartARM2400 USB host例程
💻 H
📖 第 1 页 / 共 2 页
字号:
    USB_INT16U D2PowerConsumption;
} __USB_POWER_DESCRIPTOR, *__PUSB_POWER_DESCRIPTOR;

/*********************************************************************************************************
  USB Power descriptor value
*********************************************************************************************************/
#define __USB_SUPPORT_D0_COMMAND                    0x01
#define __USB_SUPPORT_D1_COMMAND                    0x02
#define __USB_SUPPORT_D2_COMMAND                    0x04
#define __USB_SUPPORT_D3_COMMAND                    0x08

#define __USB_SUPPORT_D1_WAKEUP                     0x10
#define __USB_SUPPORT_D2_WAKEUP                     0x20


/*********************************************************************************************************
  USB common descriptor structure 
*********************************************************************************************************/
typedef struct __tagUSB_COMMON_DESCRIPTOR {
    USB_INT8U bLength;
    USB_INT8U bDescriptorType;
} __USB_COMMON_DESCRIPTOR, *__PUSB_COMMON_DESCRIPTOR;

/*********************************************************************************************************
  USB HUB descriptor structure 
*********************************************************************************************************/
typedef __packed struct __tagUSB_HUB_DESCRIPTOR {
    USB_INT8U  bDescriptorLength;                                       /*  Length of this descriptor   */
    USB_INT8U  bDescriptorType;                                         /*  Hub configuration type      */
    USB_INT8U  bNumberOfPorts;                                          /*  number of ports on this hub */
    USB_INT16U wHubCharacteristics;                                     /*  Hub Charateristics          */
    USB_INT8U  bPowerOnToPowerGood;                                     /*  port power on till power    */
                                                                        /*  ...good in 2ms              */
    USB_INT8U  bHubControlCurrent;                                      /*  max current in mA           */
    USB_INT8U  bRemoveAndPowerMask[64];                                 /*  room for 255 ports power    */
                                                                        /*  control and removable bitmask*/          
} __USB_HUB_DESCRIPTOR, *__PUSB_HUB_DESCRIPTOR;             


/*********************************************************************************************************
  common descriptor struture member value 
*********************************************************************************************************/

/*********************************************************************************************************
  USB device request type mask  
*********************************************************************************************************/
/*********************************************************************************************************
  (1) Receiver: D4...D0 
*********************************************************************************************************/
#define __USB_RECIPIENT                             (USB_INT8U)0x1F
#define __USB_RECIPIENT_DEVICE                      (USB_INT8U)0x00
#define __USB_RECIPIENT_INTERFACE                   (USB_INT8U)0x01
#define __USB_RECIPIENT_ENDPOINT                    (USB_INT8U)0x02

/*********************************************************************************************************
  (2) Type: D6...D5
*********************************************************************************************************/
#define __USB_REQUEST_TYPE_MASK                     (USB_INT8U)0x60
#define __USB_STANDARD_REQUEST                      (USB_INT8U)0x00
#define __USB_CLASS_REQUEST                         (USB_INT8U)0x20
#define __USB_VENDOR_REQUEST                        (USB_INT8U)0x40

/*********************************************************************************************************
  (3) data direction: D7
*********************************************************************************************************/
#define __USB_DEVICE_ADDRESS_MASK                   0x7F
#define __USB_HOST_TO_DEVICE                        (USB_INT8U)0x00
#define __USB_DEVICE_TO_HOST                        (USB_INT8U)0x80

/*********************************************************************************************************
  (4) USB request mask
*********************************************************************************************************/
#define __USB_REQUEST_MASK                          (USB_INT8U)0x0F

/*********************************************************************************************************
  (5) USB endpoint direction mask
*********************************************************************************************************/
#define __USB_ENDPOINT_DIRECTION_MASK               0x80
#define __USB_ENDPOINT_DIRECTION_OUT(addr)          (!((addr) & __USB_ENDPOINT_DIRECTION_MASK))
#define __USB_ENDPOINT_DIRECTION_IN(addr)           ((addr) & __USB_ENDPOINT_DIRECTION_MASK)

/*********************************************************************************************************
  USB device request type
*********************************************************************************************************/
#define __USB_DEVICE_DESCRIPTOR_TYPE                (USB_INT8U)0x01
#define __USB_CONFIGURATION_DESCRIPTOR_TYPE         (USB_INT8U)0x02
#define __USB_STRING_DESCRIPTOR_TYPE                (USB_INT8U)0x03
#define __USB_INTERFACE_DESCRIPTOR_TYPE             (USB_INT8U)0x04
#define __USB_ENDPOINT_DESCRIPTOR_TYPE              (USB_INT8U)0x05
#define __USB_POWER_DESCRIPTOR_TYPE                 (USB_INT8U)0x06
#define __USB_OTG_DESCRIPTOR_TYPE                   (USB_INT8U)0x09

/*********************************************************************************************************
  correct value based on USB1.0 specification
*********************************************************************************************************/
#define __USB_REQUEST_GET_STATUS                    0x00
#define __USB_REQUEST_CLEAR_FEATURE                 0x01

#define __USB_REQUEST_SET_FEATURE                   0x03

#define __USB_REQUEST_SET_ADDRESS                   0x05
#define __USB_REQUEST_GET_DESCRIPTOR                0x06
#define __USB_REQUEST_SET_DESCRIPTOR                0x07
#define __USB_REQUEST_GET_CONFIGURATION             0x08
#define __USB_REQUEST_SET_CONFIGURATION             0x09
#define __USB_REQUEST_GET_INTERFACE                 0x0A
#define __USB_REQUEST_SET_INTERFACE                 0x0B
#define __USB_REQUEST_SYNC_FRAME                    0x0C

/*********************************************************************************************************
  USB feather select
*********************************************************************************************************/
#define __USB_FEATURE_ENDPOINT_STALL                0x0000
#define __USB_FEATURE_REMOTE_WAKEUP                 0x0001
#define __USB_FEATURE_POWER_D0                      0x0002
#define __USB_FEATURE_POWER_D1                      0x0003
#define __USB_FEATURE_POWER_D2                      0x0004
#define __USB_FEATURE_POWER_D3                      0x0005

/*********************************************************************************************************
  USB OTG Supplement feather select
*********************************************************************************************************/
#define __OTG_B_HNP_ENABLE                          3
#define __OTG_A_HNP_SUPPORT                         4
#define __OTG_A_ALT_HNP_SUPPORT                     5


#define __USB_DESCRIPTOR_MAKE_TYPE_AND_INDEX(d, i)  ((USB_INT16U)((USB_INT16U)d<<8 | i))

/*********************************************************************************************************
  USB configuration descriptor
*********************************************************************************************************/
#define __USB_CONFIG_POWERED_MASK                   0xc0

#define __USB_CONFIG_BUS_POWERED                    0x80
#define __USB_CONFIG_SELF_POWERED                   0x40
#define __USB_CONFIG_REMOTE_WAKEUP                  0x20

#define __BUS_POWERED                               0x80
#define __SELF_POWERED                              0x40
#define __REMOTE_WAKEUP                             0x20

/*********************************************************************************************************
  USB endpoint descriptor structure: endpoint attribute
*********************************************************************************************************/
#define __USB_ENDPOINT_TYPE_MASK                    0x03

#define __USB_ENDPOINT_TYPE_CONTROL                 0x00
#define __USB_ENDPOINT_TYPE_ISOCHRONOUS             0x01
#define __USB_ENDPOINT_TYPE_BULK                    0x02
#define __USB_ENDPOINT_TYPE_INTERRUPT               0x03

/*********************************************************************************************************
  USB  device class
*********************************************************************************************************/
#define __USB_DEVICE_CLASS_RESERVED                 0x00
#define __USB_DEVICE_CLASS_AUDIO                    0x01
#define __USB_DEVICE_CLASS_COMMUNICATIONS           0x02
#define __USB_DEVICE_CLASS_HUMAN_INTERFACE          0x03
#define __USB_DEVICE_CLASS_MONITOR                  0x04
#define __USB_DEVICE_CLASS_PHYSICAL_INTERFACE       0x05
#define __USB_DEVICE_CLASS_POWER                    0x06
#define __USB_DEVICE_CLASS_PRINTER                  0x07
#define __USB_DEVICE_CLASS_STORAGE                  0x08
#define __USB_DEVICE_CLASS_HUB                      0x09
#define __USB_DEVICE_CLASS_VENDOR_SPECIFIC          0xFF

#endif

/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -