/** * HID Mouse Report Descriptor */ const uint8_t Mouse_ReportDescriptor[] = { HID_UsagePage(HID_USAGE_PAGE_GENERIC), HID_Usage(HID_USAGE_GENERIC_MOUSE), HID_Collection(HID_Application), HID_Usage(HID_USAGE_GENERIC_POINTER), HID_Collection(HID_Physical), HID_UsagePage(HID_USAGE_PAGE_BUTTON), HID_UsageMin(1), HID_UsageMax(3), HID_LogicalMin(0), HID_LogicalMax(1), HID_ReportCount(3), HID_ReportSize(1), HID_Input(HID_Data | HID_Variable | HID_Absolute), HID_ReportCount(1), HID_ReportSize(5), HID_Input(HID_Constant), HID_UsagePage(HID_USAGE_PAGE_GENERIC), HID_Usage(HID_USAGE_GENERIC_X), HID_Usage(HID_USAGE_GENERIC_Y), HID_LogicalMin( (uint16_t) -32767), //was -127 HID_LogicalMax(32767), //was 127 HID_ReportSize(16), //Was 8 HID_ReportCount(2), HID_Input(HID_Data | HID_Variable | HID_Relative), HID_EndCollection, HID_EndCollection, }; const uint16_t Mouse_ReportDescSize = sizeof(Mouse_ReportDescriptor); /** * USB Standard Device Descriptor */ ALIGNED(4) const uint8_t USB_DeviceDescriptor[] = { USB_DEVICE_DESC_SIZE,/* bLength */ USB_DEVICE_DESCRIPTOR_TYPE,/* bDescriptorType */ WBVAL(0x0200),/* bcdUSB : 2.00*/ 0x00,/* bDeviceClass */ 0x00,/* bDeviceSubClass */ 0x00,/* bDeviceProtocol */ USB_MAX_PACKET0,/* bMaxPacketSize0 */ WBVAL(0x1FC9),/* idVendor */ WBVAL(0x0085),/* idProduct */ WBVAL(0x0100),/* bcdDevice : 1.00 */ 0x01,/* iManufacturer */ 0x02,/* iProduct */ 0x03,/* iSerialNumber */ 0x01/* bNumConfigurations */ }; /** * USB FSConfiguration Descriptor * All Descriptors (Configuration, Interface, Endpoint, Class, Vendor) */ ALIGNED(4) uint8_t USB_FsConfigDescriptor[] = { /* Configuration 1 */ USB_CONFIGURATION_DESC_SIZE,/* bLength */ USB_CONFIGURATION_DESCRIPTOR_TYPE,/* bDescriptorType */ WBVAL(/* wTotalLength */ USB_CONFIGURATION_DESC_SIZE + USB_INTERFACE_DESC_SIZE + HID_DESC_SIZE + USB_ENDPOINT_DESC_SIZE ), 0x01,/* bNumInterfaces */ 0x01,/* bConfigurationValue */ 0x00,/* iConfiguration */ USB_CONFIG_SELF_POWERED,/* bmAttributes */ USB_CONFIG_POWER_MA(2), /* bMaxPower */ /* Interface 0, Alternate Setting 0, HID Class */ USB_INTERFACE_DESC_SIZE,/* bLength */ USB_INTERFACE_DESCRIPTOR_TYPE,/* bDescriptorType */ 0x00,/* bInterfaceNumber */ 0x00,/* bAlternateSetting */ 0x01,/* bNumEndpoints */ USB_DEVICE_CLASS_HUMAN_INTERFACE,/* bInterfaceClass */ HID_SUBCLASS_BOOT,/* bInterfaceSubClass */ HID_PROTOCOL_MOUSE,/* bInterfaceProtocol */ 0x04,/* iInterface */ /* HID Class Descriptor */ /* HID_DESC_OFFSET = 0x0012 */ HID_DESC_SIZE,/* bLength */ HID_HID_DESCRIPTOR_TYPE,/* bDescriptorType */ WBVAL(0x0111),/* bcdHID : 1.11*/ 0x00,/* bCountryCode */ 0x01,/* bNumDescriptors */ HID_REPORT_DESCRIPTOR_TYPE,/* bDescriptorType */ WBVAL(sizeof(Mouse_ReportDescriptor)),/* wDescriptorLength */ /* Endpoint, HID Interrupt In */ USB_ENDPOINT_DESC_SIZE,/* bLength */ USB_ENDPOINT_DESCRIPTOR_TYPE,/* bDescriptorType */ HID_EP_IN,/* bEndpointAddress */ USB_ENDPOINT_TYPE_INTERRUPT,/* bmAttributes */ WBVAL(0x0008),/* wMaxPacketSize */ HID_MOUSE_REPORT_INTERVAL,/* bInterval */ /* Terminator */ 0/* bLength */ }; |