00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #include <USBD_Config.h>
00043
00044 #include <HIDDMouseDriver.h>
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060 #define HIDDMouseDriverDescriptors_PRODUCTID USBD_PID_HIDMOUSE
00061
00062 #define HIDDMouseDriverDescriptors_VENDORID USBD_VID_ATMEL
00063
00064 #define HIDDMouseDriverDescriptors_RELEASE USBD_RELEASE_1_00
00065
00066
00067
00068
00069
00070
00071
00072 static const USBDeviceDescriptor deviceDescriptor = {
00073
00074 sizeof(USBDeviceDescriptor),
00075 USBGenericDescriptor_DEVICE,
00076 USBDeviceDescriptor_USB2_00,
00077 HIDDeviceDescriptor_CLASS,
00078 HIDDeviceDescriptor_SUBCLASS,
00079 HIDDeviceDescriptor_PROTOCOL,
00080 CHIP_USB_ENDPOINTS_MAXPACKETSIZE(0),
00081 HIDDMouseDriverDescriptors_VENDORID,
00082 HIDDMouseDriverDescriptors_PRODUCTID,
00083 HIDDMouseDriverDescriptors_RELEASE,
00084 1,
00085 2,
00086 3,
00087 1
00088 };
00089
00090
00091 static const USBDeviceQualifierDescriptor qualifierDescriptor = {
00092
00093 sizeof(USBDeviceQualifierDescriptor),
00094 USBGenericDescriptor_DEVICEQUALIFIER,
00095 USBDeviceDescriptor_USB2_00,
00096 HIDDeviceDescriptor_CLASS,
00097 HIDDeviceDescriptor_SUBCLASS,
00098 HIDDeviceDescriptor_PROTOCOL,
00099 CHIP_USB_ENDPOINTS_MAXPACKETSIZE(0),
00100 0,
00101 0x00
00102 };
00103
00104
00105 static const HIDDMouseDriverConfigurationDescriptors configurationDescriptors
00106 = {
00107
00108
00109 {
00110 sizeof(USBConfigurationDescriptor),
00111 USBGenericDescriptor_CONFIGURATION,
00112 sizeof(HIDDMouseDriverConfigurationDescriptors),
00113 1,
00114 1,
00115 0,
00116 USBD_BMATTRIBUTES,
00117 USBConfigurationDescriptor_POWER(100)
00118 },
00119
00120 {
00121 sizeof(USBInterfaceDescriptor),
00122 USBGenericDescriptor_INTERFACE,
00123 0,
00124 0,
00125 1,
00126 HIDInterfaceDescriptor_CLASS,
00127 HIDInterfaceDescriptor_SUBCLASS_NONE,
00128 HIDInterfaceDescriptor_PROTOCOL_MOUSE,
00129 0
00130 },
00131
00132 {
00133 sizeof(HIDDescriptor1),
00134 HIDGenericDescriptor_HID,
00135 HIDDescriptor_HID1_11,
00136 0,
00137 1,
00138 HIDGenericDescriptor_REPORT,
00139 {HIDDMouseDriver_REPORTDESCRIPTORSIZE}
00140 },
00141
00142 {
00143 sizeof(USBEndpointDescriptor),
00144 USBGenericDescriptor_ENDPOINT,
00145 USBEndpointDescriptor_ADDRESS(
00146 USBEndpointDescriptor_IN,
00147 HIDDMouseDriverDescriptors_INTERRUPTIN),
00148 USBEndpointDescriptor_INTERRUPT,
00149 sizeof(HIDDMouseInputReport),
00150 HIDDMouseDriverDescriptors_INTERRUPTIN_POLLING
00151 }
00152 };
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162 static const unsigned char languageIdDescriptor[] = {
00163
00164 USBStringDescriptor_LENGTH(1),
00165 USBGenericDescriptor_STRING,
00166 USBStringDescriptor_ENGLISH_US
00167 };
00168
00169 static const unsigned char manufacturerDescriptor[] = {
00170
00171 USBStringDescriptor_LENGTH(5),
00172 USBGenericDescriptor_STRING,
00173 USBStringDescriptor_UNICODE('A'),
00174 USBStringDescriptor_UNICODE('T'),
00175 USBStringDescriptor_UNICODE('M'),
00176 USBStringDescriptor_UNICODE('E'),
00177 USBStringDescriptor_UNICODE('L')
00178 };
00179
00180 static const unsigned char productDescriptor[] = {
00181
00182 USBStringDescriptor_LENGTH(19),
00183 USBGenericDescriptor_STRING,
00184 USBStringDescriptor_UNICODE('A'),
00185 USBStringDescriptor_UNICODE('T'),
00186 USBStringDescriptor_UNICODE('M'),
00187 USBStringDescriptor_UNICODE('E'),
00188 USBStringDescriptor_UNICODE('L'),
00189 USBStringDescriptor_UNICODE(' '),
00190 USBStringDescriptor_UNICODE('A'),
00191 USBStringDescriptor_UNICODE('T'),
00192 USBStringDescriptor_UNICODE('9'),
00193 USBStringDescriptor_UNICODE('1'),
00194 USBStringDescriptor_UNICODE(' '),
00195 USBStringDescriptor_UNICODE('H'),
00196 USBStringDescriptor_UNICODE('I'),
00197 USBStringDescriptor_UNICODE('D'),
00198 USBStringDescriptor_UNICODE(' '),
00199 USBStringDescriptor_UNICODE('M'),
00200 USBStringDescriptor_UNICODE('O'),
00201 USBStringDescriptor_UNICODE('U'),
00202 USBStringDescriptor_UNICODE('S'),
00203 USBStringDescriptor_UNICODE('E'),
00204 };
00205
00206 static const unsigned char serialNumberDescriptor[] = {
00207
00208 USBStringDescriptor_LENGTH(12),
00209 USBGenericDescriptor_STRING,
00210 USBStringDescriptor_UNICODE('0'),
00211 USBStringDescriptor_UNICODE('1'),
00212 USBStringDescriptor_UNICODE('2'),
00213 USBStringDescriptor_UNICODE('3'),
00214 USBStringDescriptor_UNICODE('4'),
00215 USBStringDescriptor_UNICODE('5'),
00216 USBStringDescriptor_UNICODE('6'),
00217 USBStringDescriptor_UNICODE('7'),
00218 USBStringDescriptor_UNICODE('8'),
00219 USBStringDescriptor_UNICODE('9'),
00220 USBStringDescriptor_UNICODE('A'),
00221 USBStringDescriptor_UNICODE('F')
00222 };
00223
00224 static const unsigned char *stringDescriptors[] = {
00225
00226 languageIdDescriptor,
00227 manufacturerDescriptor,
00228 productDescriptor,
00229 serialNumberDescriptor
00230 };
00231
00232
00233
00234
00235
00236
00237 USBDDriverDescriptors hiddMouseDriverDescriptors = {
00238
00239 &deviceDescriptor,
00240 (USBConfigurationDescriptor *) &configurationDescriptors,
00241 &qualifierDescriptor,
00242 0,
00243 0,
00244 0,
00245 &qualifierDescriptor,
00246 0,
00247 stringDescriptors,
00248 4
00249 };
00250
00251