slime@2
|
1 |
/*********************************************************************
|
slime@2
|
2 |
*
|
slime@2
|
3 |
* Microchip USB C18 Firmware Version 1.0
|
slime@2
|
4 |
*
|
slime@2
|
5 |
*********************************************************************
|
slime@2
|
6 |
* FileName: usbdefs_std_dsc.h
|
slime@2
|
7 |
* Dependencies: See INCLUDES section below
|
slime@2
|
8 |
* Processor: PIC18
|
slime@2
|
9 |
* Compiler: C18 2.30.01+
|
slime@2
|
10 |
* Company: Microchip Technology, Inc.
|
slime@2
|
11 |
*
|
slime@2
|
12 |
* Software License Agreement
|
slime@2
|
13 |
*
|
slime@2
|
14 |
* The software supplied herewith by Microchip Technology Incorporated
|
slime@2
|
15 |
* (the “Company”) for its PICmicro® Microcontroller is intended and
|
slime@2
|
16 |
* supplied to you, the Company’s customer, for use solely and
|
slime@2
|
17 |
* exclusively on Microchip PICmicro Microcontroller products. The
|
slime@2
|
18 |
* software is owned by the Company and/or its supplier, and is
|
slime@2
|
19 |
* protected under applicable copyright laws. All rights are reserved.
|
slime@2
|
20 |
* Any use in violation of the foregoing restrictions may subject the
|
slime@2
|
21 |
* user to criminal sanctions under applicable laws, as well as to
|
slime@2
|
22 |
* civil liability for the breach of the terms and conditions of this
|
slime@2
|
23 |
* license.
|
slime@2
|
24 |
*
|
slime@2
|
25 |
* THIS SOFTWARE IS PROVIDED IN AN “AS IS” CONDITION. NO WARRANTIES,
|
slime@2
|
26 |
* WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED
|
slime@2
|
27 |
* TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
slime@2
|
28 |
* PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT,
|
slime@2
|
29 |
* IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR
|
slime@2
|
30 |
* CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
slime@2
|
31 |
*
|
slime@2
|
32 |
* Author Date Comment
|
slime@2
|
33 |
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
slime@2
|
34 |
* Rawin Rojvanit 11/19/04 Original.
|
slime@2
|
35 |
********************************************************************/
|
slime@2
|
36 |
|
slime@2
|
37 |
/******************************************************************************
|
slime@2
|
38 |
* USB Definitions: Standard Descriptors
|
slime@2
|
39 |
*****************************************************************************/
|
slime@2
|
40 |
#ifndef USBDEFS_STD_DSC_H
|
slime@2
|
41 |
#define USBDEFS_STD_DSC_H
|
slime@2
|
42 |
|
slime@2
|
43 |
/** I N C L U D E S **********************************************************/
|
slime@2
|
44 |
#include "typedefs.h"
|
slime@2
|
45 |
|
slime@2
|
46 |
/** D E F I N I T I O N S ****************************************************/
|
slime@2
|
47 |
|
slime@2
|
48 |
/* Descriptor Types */
|
slime@2
|
49 |
#define DSC_DEV 0x01
|
slime@2
|
50 |
#define DSC_CFG 0x02
|
slime@2
|
51 |
#define DSC_STR 0x03
|
slime@2
|
52 |
#define DSC_INTF 0x04
|
slime@2
|
53 |
#define DSC_EP 0x05
|
slime@2
|
54 |
|
slime@2
|
55 |
/******************************************************************************
|
slime@2
|
56 |
* USB Endpoint Definitions
|
slime@2
|
57 |
* USB Standard EP Address Format: DIR:X:X:X:EP3:EP2:EP1:EP0
|
slime@2
|
58 |
* This is used in the descriptors. See autofiles\usbdsc.c
|
slime@2
|
59 |
*
|
slime@2
|
60 |
* NOTE: Do not use these values for checking against USTAT.
|
slime@2
|
61 |
* To check against USTAT, use values defined in "system\usb\usbdrv\usbdrv.h"
|
slime@2
|
62 |
*****************************************************************************/
|
slime@2
|
63 |
#define _EP01_OUT 0x01
|
slime@2
|
64 |
#define _EP01_IN 0x81
|
slime@2
|
65 |
#define _EP02_OUT 0x02
|
slime@2
|
66 |
#define _EP02_IN 0x82
|
slime@2
|
67 |
#define _EP03_OUT 0x03
|
slime@2
|
68 |
#define _EP03_IN 0x83
|
slime@2
|
69 |
#define _EP04_OUT 0x04
|
slime@2
|
70 |
#define _EP04_IN 0x84
|
slime@2
|
71 |
#define _EP05_OUT 0x05
|
slime@2
|
72 |
#define _EP05_IN 0x85
|
slime@2
|
73 |
#define _EP06_OUT 0x06
|
slime@2
|
74 |
#define _EP06_IN 0x86
|
slime@2
|
75 |
#define _EP07_OUT 0x07
|
slime@2
|
76 |
#define _EP07_IN 0x87
|
slime@2
|
77 |
#define _EP08_OUT 0x08
|
slime@2
|
78 |
#define _EP08_IN 0x88
|
slime@2
|
79 |
#define _EP09_OUT 0x09
|
slime@2
|
80 |
#define _EP09_IN 0x89
|
slime@2
|
81 |
#define _EP10_OUT 0x0A
|
slime@2
|
82 |
#define _EP10_IN 0x8A
|
slime@2
|
83 |
#define _EP11_OUT 0x0B
|
slime@2
|
84 |
#define _EP11_IN 0x8B
|
slime@2
|
85 |
#define _EP12_OUT 0x0C
|
slime@2
|
86 |
#define _EP12_IN 0x8C
|
slime@2
|
87 |
#define _EP13_OUT 0x0D
|
slime@2
|
88 |
#define _EP13_IN 0x8D
|
slime@2
|
89 |
#define _EP14_OUT 0x0E
|
slime@2
|
90 |
#define _EP14_IN 0x8E
|
slime@2
|
91 |
#define _EP15_OUT 0x0F
|
slime@2
|
92 |
#define _EP15_IN 0x8F
|
slime@2
|
93 |
|
slime@2
|
94 |
/* Configuration Attributes */
|
slime@2
|
95 |
#define _DEFAULT 0x01<<7 //Default Value (Bit 7 is set)
|
slime@2
|
96 |
#define _SELF 0x01<<6 //Self-powered (Supports if set)
|
slime@2
|
97 |
#define _RWU 0x01<<5 //Remote Wakeup (Supports if set)
|
slime@2
|
98 |
|
slime@2
|
99 |
/* Endpoint Transfer Type */
|
slime@2
|
100 |
#define _CTRL 0x00 //Control Transfer
|
slime@2
|
101 |
#define _ISO 0x01 //Isochronous Transfer
|
slime@2
|
102 |
#define _BULK 0x02 //Bulk Transfer
|
slime@2
|
103 |
#define _INT 0x03 //Interrupt Transfer
|
slime@2
|
104 |
|
slime@2
|
105 |
/* Isochronous Endpoint Synchronization Type */
|
slime@2
|
106 |
#define _NS 0x00<<2 //No Synchronization
|
slime@2
|
107 |
#define _AS 0x01<<2 //Asynchronous
|
slime@2
|
108 |
#define _AD 0x02<<2 //Adaptive
|
slime@2
|
109 |
#define _SY 0x03<<2 //Synchronous
|
slime@2
|
110 |
|
slime@2
|
111 |
/* Isochronous Endpoint Usage Type */
|
slime@2
|
112 |
#define _DE 0x00<<4 //Data endpoint
|
slime@2
|
113 |
#define _FE 0x01<<4 //Feedback endpoint
|
slime@2
|
114 |
#define _IE 0x02<<4 //Implicit feedback Data endpoint
|
slime@2
|
115 |
|
slime@2
|
116 |
|
slime@2
|
117 |
/** S T R U C T U R E ********************************************************/
|
slime@2
|
118 |
|
slime@2
|
119 |
/******************************************************************************
|
slime@2
|
120 |
* USB Device Descriptor Structure
|
slime@2
|
121 |
*****************************************************************************/
|
slime@2
|
122 |
typedef struct _USB_DEV_DSC
|
slime@2
|
123 |
{
|
slime@2
|
124 |
byte bLength; byte bDscType; word bcdUSB;
|
slime@2
|
125 |
byte bDevCls; byte bDevSubCls; byte bDevProtocol;
|
slime@2
|
126 |
byte bMaxPktSize0; word idVendor; word idProduct;
|
slime@2
|
127 |
word bcdDevice; byte iMFR; byte iProduct;
|
slime@2
|
128 |
byte iSerialNum; byte bNumCfg;
|
slime@2
|
129 |
} USB_DEV_DSC;
|
slime@2
|
130 |
|
slime@2
|
131 |
/******************************************************************************
|
slime@2
|
132 |
* USB Configuration Descriptor Structure
|
slime@2
|
133 |
*****************************************************************************/
|
slime@2
|
134 |
typedef struct _USB_CFG_DSC
|
slime@2
|
135 |
{
|
slime@2
|
136 |
byte bLength; byte bDscType; word wTotalLength;
|
slime@2
|
137 |
byte bNumIntf; byte bCfgValue; byte iCfg;
|
slime@2
|
138 |
byte bmAttributes; byte bMaxPower;
|
slime@2
|
139 |
} USB_CFG_DSC;
|
slime@2
|
140 |
|
slime@2
|
141 |
/******************************************************************************
|
slime@2
|
142 |
* USB Interface Descriptor Structure
|
slime@2
|
143 |
*****************************************************************************/
|
slime@2
|
144 |
typedef struct _USB_INTF_DSC
|
slime@2
|
145 |
{
|
slime@2
|
146 |
byte bLength; byte bDscType; byte bIntfNum;
|
slime@2
|
147 |
byte bAltSetting; byte bNumEPs; byte bIntfCls;
|
slime@2
|
148 |
byte bIntfSubCls; byte bIntfProtocol; byte iIntf;
|
slime@2
|
149 |
} USB_INTF_DSC;
|
slime@2
|
150 |
|
slime@2
|
151 |
/******************************************************************************
|
slime@2
|
152 |
* USB Endpoint Descriptor Structure
|
slime@2
|
153 |
*****************************************************************************/
|
slime@2
|
154 |
typedef struct _USB_EP_DSC
|
slime@2
|
155 |
{
|
slime@2
|
156 |
byte bLength; byte bDscType; byte bEPAdr;
|
slime@2
|
157 |
byte bmAttributes; word wMaxPktSize; byte bInterval;
|
slime@2
|
158 |
} USB_EP_DSC;
|
slime@2
|
159 |
|
slime@2
|
160 |
#endif //USBDEFS_STD_DSC_H
|