📄 usb_descriptor.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 + -