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

📄 usb_descriptor.h

📁 IT projecotr reference design.
💻 H
字号:
/****************************************************************************/
/*             TEXAS INSTRUMENTS PROPRIETARY INFORMATION                    */
/*                                                                          */
/*  (c) Copyright, Texas Instruments Incorporated, 2006.                    */
/*      All Rights Reserved.                                                */
/*                                                                          */
/*  Property of Texas Instruments Incorporated. Restricted Rights -         */
/*  Use, duplication, or disclosure is subject to restrictions set          */
/*  forth in TI's program license agreement and associated documentation.   */
/****************************************************************************/

/****************************************************************************/
/* usb_descriptor.h                                                         */
/****************************************************************************/



#ifndef USB_DESCRIPTOR_H
#define USB_DESCRIPTOR_H



                        /****************************************************/
                        /* USB Descriptor constants                         */
                        /****************************************************/

#define USBDESC_LANGID_US_ENGLISH         0x0409 /*LANGID code for US English*/ 
#define USBDESC_STRING_LANGID_IDX         0      /*Langids are ALWAYS at index 0*/
#define USBDESC_STRING_MANUFACTURER_IDX   1
#define USBDESC_STRING_PRODUCT_IDX        2
#define USBDESC_STRING_SERIAL_NUM_IDX     3
#define USBDESC_STRING_MOUSE_IDX          4
#define USBDESC_STRING_SERIAL_NUM_HID_IDX 5
#define USBDESC_STRING_KEYBOARD_IDX       6
#define USBDESC_STRING_NUM_IDX            7      /*Number of string descriptors*/

                        /****************************************************/
                        /* Device descriptor                                */
                        /****************************************************/

#define USBDESC_DEV_LENGTH            18      /**< Device descriptor size */
#define USBDESC_SPEC_RELEASE_NUMBER   0x0110  /**< USB specification 1.1 release number   */
#define USBDESC_DEV_CLASS             0x00    /**< No device descriptor class code        */
#define USBDESC_DEV_SUBCLASS          0x00    /**< No device descriptor sub-class code    */
#define USBDESC_DEV_PROTOCOL          0x00    /**< No device descriptor protocol code     */
#define USBDESC_DEV_VENDOR_ID         0x0451  /**< TI vendor id                                       */
#define USBDESC_DEV_PRODUCT_ID        0x2000  /**< DDP2000 product id (hopefully no conflicts)        */
#define USBDESC_DEV_RELEASE_NUM       0x00    /**< Device descriptor device release number*/
#define USBDESC_DEV_MANUFACTURER_IDX  0x01    /**< Device descriptor manufacturer string id           */
#define USBDESC_DEV_PRODUCT_IDX       0x02    /**< product string id                */
#define USBDESC_DEV_SERIAL_NUMBER_IDX 0x03     /* serial number string id          */

                        /****************************************************/
                        /*  Configuration descriptor                        */
                        /****************************************************/

#define USBDESC_CFG_LENGTH                  9     /**< Configuration descriptor size */ 
#define USBDESC_CONFIG_DESC_TOTAL_LEN_FACTORYMODE (USBDESC_CFG_LENGTH + (3*USBDESC_INTR_LENGTH) + (6*USBDESC_EP_LENGTH) + USBDESC_HID_LENGTH_MOUSE + USBDESC_HID_LENGTH_KEYBOARD)
#define USBDESC_CONFIG_DESC_TOTAL_LEN_USERMODE (USBDESC_CFG_LENGTH + (2*USBDESC_INTR_LENGTH) + (2*USBDESC_EP_LENGTH) + USBDESC_HID_LENGTH_MOUSE + USBDESC_HID_LENGTH_KEYBOARD)
#define USBDESC_NUM_INTERFACES_FACTORYMODE  3
#define USBDESC_NUM_INTERFACES_USERMODE     2
#define USBDESC_CFG_ATTRIBUTES              0xE0  /**< Attributes are Self-powered and Remote Wakeup*/ 
#define USBDESC_CFG_MAX_POWER               0     /**< Completely self-powered*/
 
                        /****************************************************/
                        /* Interface descriptor                             */
                        /****************************************************/

#define USBDESC_HID_CLASS                   0x03
#define USBDESC_INTR_LENGTH                 9     /*Interface descriptor size */
#define USBDESC_IF0_NUM_EPS_FACTORYMODE     2
#define USBDESC_IF0_NUM_EPS_USERMODE        1
#define USBDESC_IF0_CLASS_FACTORYMODE       0xFF     /*no interface class*/
#define USBDESC_IF0_CLASS_USERMODE          0x03  /*HID interface class*/
#define USBDESC_IF0_SUBCLASS_FACTORYMODE    0     /*no interface subclass*/
#define USBDESC_IF0_SUBCLASS_USERMODE       0     /*Boot interface for HID not supported.*/
#define USBDESC_IF0_PROTOCOL_FACTORYMODE    0     /*no interface pro*/
#define USBDESC_IF0_PROTOCOL_USERMODE       0     /*0 if boot interface not supported*/
#define USBDESC_IF1_NUM_EPS_USERMODE        1
#define USBDESC_IF1_NUM_EPS_FACTORYMODE     1
#define USBDESC_IF1_CLASS_FACTORYMODE       0x03  /*HID interface class*/
#define USBDESC_IF1_SUBCLASS_FACTORYMODE    0     /*Boot interface for HID not supported.*/
#define USBDESC_IF1_PROTOCOL_FACTORYMODE    0     /*0 if boot interface not supported*/

                        /****************************************************/
                        /* Endpoint descriptor                              */
                        /****************************************************/

#define USBDESC_EP_LENGTH             7       /**< Endpoint descriptor size */

#define USBDESC_EP1_IN_ADDR           0x81
#define USBDESC_EP1_OUT_ADDR          0x01
#define USBDESC_EP2_IN_ADDR           0x82
#define USBDESC_EP2_OUT_ADDR          0x02
#define USBDESC_EP3_IN_ADDR           0x83
#define USBDESC_EP3_OUT_ADDR          0x03
#define USBDESC_EP4_IN_ADDR           0x84
#define USBDESC_EP4_OUT_ADDR          0x04

                        /****************************************************/
                        /* Factory mode endpoints/events                    */
                        /****************************************************/

#define USB_PROJ_ENDPOINT_FACTORYMODE       1                       /* endpoint number */
#define USB_INTERFACE_PROJ_FACTORYMODE      USB_INTERFACE_0         /* interface number */
#define USBDESC_PROJ_IN_FACTORYMODE         USBDESC_EP1_IN_ADDR     /* IN endpoint ID */
#define USBDESC_PROJ_OUT_FACTORYMODE        USBDESC_EP1_OUT_ADDR    /* OUT endpoint ID */
#define USB_EVENT_PROJ_FACTORYMODE          USB_EP1_IN_DATA_REQ     /* event mask */

#define USB_RFC_ENDPOINT_FACTORYMODE        2                       /* endpoint number */
#define USB_INTERFACE_RFC_FACTORYMODE       USB_INTERFACE_0			/* interface number */
#define USBDESC_RFC_IN_FACTORYMODE          USBDESC_EP2_IN_ADDR		/* IN endpoint ID */
#define USBDESC_RFC_OUT_FACTORYMODE         USBDESC_EP2_OUT_ADDR    /* OUT endpoint ID */
#define USB_EVENT_RFC_FACTORYMODE           USB_EP2_IN_DATA_REQ		/* event mask */

#define USB_MOUSE_ENDPOINT_FACTORYMODE      3                       /* endpoint number */
#define USB_INTERFACE_MOUSE_FACTORYMODE     USB_INTERFACE_1			/* interface number */
#define USBDESC_MOUSE_IN_FACTORYMODE        USBDESC_EP3_IN_ADDR     /* IN endpoint ID */
#define USB_EVENT_MOUSE_FACTORYMODE         USB_EP3_IN_DATA_REQ     /* event mask */

#define USB_KEY_ENDPOINT_FACTORYMODE        4                       /* endpoint number */
#define USB_INTERFACE_KEY_FACTORYMODE       USB_INTERFACE_2			/* interface number */
#define USBDESC_KEY_IN_FACTORYMODE          USBDESC_EP4_IN_ADDR		/* IN endpoint ID */
#define USB_EVENT_KEY_FACTORYMODE           USB_EP4_IN_DATA_REQ		/* event mask */

                        /****************************************************/
                        /* User mode endpoints/events                       */
                        /****************************************************/

#define USB_MOUSE_ENDPOINT_USERMODE         1   
#define USB_INTERFACE_MOUSE_USERMODE        USB_INTERFACE_0
#define USBDESC_MOUSE_IN_USERMODE           USBDESC_EP1_IN_ADDR

#define USB_KEY_ENDPOINT_USERMODE           2
#define USB_INTERFACE_KEY_USERMODE          USB_INTERFACE_1
#define USBDESC_KEY_IN_USERMODE             USBDESC_EP2_IN_ADDR

                        /****************************************************/
                        /* HID descriptor lengths                           */
                        /****************************************************/

#define USBDESC_HID_LENGTH_MOUSE            0x09
#define USBDESC_HID_LENGTH_KEYBOARD         0x09


                        /****************************************************/
                        /* HID Report descriptor lengths                    */
                        /****************************************************/

#define USBDESC_REPORT_LENGTH_MOUSE         50
#define USBDESC_REPORT_LENGTH_KEYBOARD      63


                        /****************************************************/
                        /* Function Prototypes                              */
                        /****************************************************/

int08 USBDESC_InitDescriptors( uint08 Mode );
int08 USBDESC_SendDescriptor(uint08 Ep, USB_DEV_REQUEST *Dev_Request, uint08 Max_Pkt, uint08 Mode );

#endif

⌨️ 快捷键说明

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