Browse Source

Fixing descriptor bugs

- Missing device qualifier descriptor
- Missing USB Debug descriptor (used by lsusb)
simple
Jacob Alexander 9 years ago
parent
commit
9a85f92a43

+ 2
- 2
Output/pjrcUSB/avr/usb_keyboard_serial.c View File

USBKeys_Idle_Config = (wValue >> 8); USBKeys_Idle_Config = (wValue >> 8);
USBKeys_Idle_Count = 0; USBKeys_Idle_Count = 0;
usb_send_in(); usb_send_in();
print("HID IDLE");
//print("HID IDLE");
return; return;
} }
if ( bRequest == HID_SET_PROTOCOL ) if ( bRequest == HID_SET_PROTOCOL )
usb_wait_in_ready(); usb_wait_in_ready();
USBKeys_Protocol = wValue; // 0 - Boot Mode, 1 - NKRO Mode USBKeys_Protocol = wValue; // 0 - Boot Mode, 1 - NKRO Mode
usb_send_in(); usb_send_in();
print("HID SET");
//print("HID SET");
return; return;
} }
} }

+ 13
- 1
Output/pjrcUSB/avr/usb_keyboard_serial.h View File

1 // bNumConfigurations 1 // bNumConfigurations
}; };


// Specify only a single USB speed
static const uint8_t PROGMEM device_qualifier_descriptor[] = {
0
};

// Disable USB debug descriptor
static const uint8_t PROGMEM usb_debug_descriptor[] = {
0
};

// Keyboard Protocol 1, HID 1.11 spec, Appendix B, page 59-60 // Keyboard Protocol 1, HID 1.11 spec, Appendix B, page 59-60
static const uint8_t PROGMEM keyboard_hid_report_desc[] = { static const uint8_t PROGMEM keyboard_hid_report_desc[] = {
// Keyboard Collection // Keyboard Collection
9, // bLength 9, // bLength
0x21, // bDescriptorType 0x21, // bDescriptorType
0x11, 0x01, // bcdHID 0x11, 0x01, // bcdHID
33, // bCountryCode - Setting to 0/Undefined
0, // bCountryCode - Setting to 0/Undefined
1, // bNumDescriptors 1, // bNumDescriptors
0x22, // bDescriptorType 0x22, // bDescriptorType
// wDescriptorLength // wDescriptorLength
} PROGMEM descriptor_list[] = { } PROGMEM descriptor_list[] = {
{0x0100, 0x0000, device_descriptor, sizeof(device_descriptor)}, {0x0100, 0x0000, device_descriptor, sizeof(device_descriptor)},
{0x0200, 0x0000, config1_descriptor, sizeof(config1_descriptor)}, {0x0200, 0x0000, config1_descriptor, sizeof(config1_descriptor)},
{0x0600, 0x0000, device_qualifier_descriptor, sizeof(device_qualifier_descriptor)},
{0x0A00, 0x0000, usb_debug_descriptor, sizeof(usb_debug_descriptor)},
{0x2200, KEYBOARD_INTERFACE, keyboard_hid_report_desc, sizeof(keyboard_hid_report_desc)}, {0x2200, KEYBOARD_INTERFACE, keyboard_hid_report_desc, sizeof(keyboard_hid_report_desc)},
{0x2100, KEYBOARD_INTERFACE, config1_descriptor + KEYBOARD_HID_DESC_OFFSET, 9}, {0x2100, KEYBOARD_INTERFACE, config1_descriptor + KEYBOARD_HID_DESC_OFFSET, 9},
{0x2200, KEYBOARD_NKRO_INTERFACE, keyboard_nkro_hid_report_desc, sizeof(keyboard_nkro_hid_report_desc)}, {0x2200, KEYBOARD_NKRO_INTERFACE, keyboard_nkro_hid_report_desc, sizeof(keyboard_nkro_hid_report_desc)},