Hello All!
I use my own PCB with EFM32GG332F1024 MCU. I'm trying to run USB HID.
However, my Report Descriptor is not read correctly! Could someone check my descriptor?
Here is my Report Descriptor:
SL_ALIGN(4) const char HID_ReportDescriptor[] SL_ATTRIBUTE_ALIGN(4) = { 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1) 0x09, 0x01, // USAGE (Vendor Usage 1) 0xa1, 0x01, // COLLECTION (Application) 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x75, 0x08, // REPORT_SIZE (8) 0x85, OUT_CONTROL_ID, // Report ID = 0x01 0x95, 0x40, // REPORT_COUNT (0x40=64 Bytes) 0x09, 0x01, // USAGE (Vendor Usage 1) 0x91, 0x02, // INPUT (Data,Var,Abs) 0x85, IN_CONTROL_ID, // Report ID = 0x02 0x95, 0x40, // REPORT_COUNT (0x40=64 Bytes) 0x09, 0x01, // USAGE (Vendor Usage 1) 0x81, 0x02, // OUTPUT (Data,Var,Abs) 0x85, OUT_DATA_ID, // Report ID = 0x03 0x95, 0x40, // REPORT_COUNT (0x40=64 Bytes) 0x09, 0x01, // USAGE (Vendor Usage 1) 0x91, 0x02, // OUTPUT (Data,Var,Abs) 0x85, IN_DATA_ID, // Report ID = 0x04 0x95, 0x40, // REPORT_COUNT () 0x09, 0x01, // USAGE (Vendor Usage 1) 0x81, 0x02, // INPUT (Data,Var,Abs) 0xC0, // End Application Collection };
And here is what USBView sees:
Device Descriptor: bcdUSB: 0x0200 bDeviceClass: 0x00 bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x40 (64) idVendor: 0x7777 idProduct: 0x2233 bcdDevice: 0x0000 iManufacturer: 0x01 iProduct: 0x02 iSerialNumber: 0x03 bNumConfigurations: 0x01 ConnectionStatus: DeviceConnected Current Config Value: 0x01 Device Bus Speed: Full Device Address: 0x0C Open Pipes: 2 Endpoint Descriptor: bEndpointAddress: 0x82 Transfer Type: Interrupt wMaxPacketSize: 0x0040 (64) bInterval: 0x01 Endpoint Descriptor: bEndpointAddress: 0x00 Transfer Type: Control wMaxPacketSize: 0x0507 (1287) wInterval: 0x0302 bSyncAddress: 0x40