- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can FX3 support superspeed mode that has HID interface plus bulk interface?
The single HID interface mouse+keyboard example doesn't enumerate as super speed. Can it enumerate as super speed?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Please change the field: /* Total Length of Report Descriptor */ of HID Descriptor from 0x1C,0x00, to 111,0x00,
Regards,
Hemanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Please let us know if your application is to have a composite device or not. According to my understanding, you wish to have a device having multiple interfaces. One is the HID interface and on the other interface, you wish to have a Bulk endpoint. Please let us know what exactly is the other interface that you are looking forward. Is it a vendor interface?
Best Regards,
Jayakrishna
Jayakrishna
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, one vendor interface with bulk/interrupt endpoints, and one HID interface with one interrupt endpoint that contains mouse and keyboard as the example.
As a test, I add a interface with a bulk endpint to the super speed descriptor in the example (full and high speed descriptor not modified), but it still enumerates as non super speed non composite device with one interface of mouse and keyboard.
How does the system choose which speed to use under this condition?
I also find out there are differences in the example, not sure it is a typo or not:
full speed:
/* Interface Descriptor */
0x09, /* Descriptor size */
CY_U3P_USB_INTRFC_DESCR, /* Interface Descriptor type */
CY_FX_USB_HID_INTF_0, /* Interface number */
0x00, /* Alternate setting number */
0x01, /* Number of end points */
0x03, /* Interface class : HID Class */
0x00, /* Interface sub class : None */
0x02, /* Interface protocol code : Mouse */
0x00, /* Interface descriptor string index */
high speed:
/* Interface Descriptor */
0x09, /* Descriptor size */
CY_U3P_USB_INTRFC_DESCR, /* Interface Descriptor type */
CY_FX_USB_HID_INTF_0, /* Interface number */
0x00, /* Alternate setting number */
0x01, /* Number of end points */
0x03, /* Interface class : HID Class */
0x01, /* Interface sub class : None */
0x02, /* Interface protocol code : Mouse */
0x00, /* Interface descriptor string index */
super speed:
/* Interface Descriptor */
0x09, /* Descriptor size */
CY_U3P_USB_INTRFC_DESCR, /* Interface Descriptor type */
CY_FX_USB_HID_INTF_0, /* Interface number */
0x00, /* Alternate setting number */
0x01, /* Number of end points */
0x03, /* Interface class */
0x00, /* Interface sub class : None */
0x02, /* Interface protocol code */
0x00, /* Interface descriptor string index */
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I think you are referring to the project in How to Implement Multiple HID Class Functionalities with a Single HID interface – KBA228479
In that project, CyU3PConnectState() is called with second parameter as CyFalse. So, the device does not enumerate as superspeed device and changes made to super speed descriptors does not come into effect.
Regards,
Hemanth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When changing CyU3PConnectState to SS without other changes, the enumeration failed on Windows.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Please change the field: /* Total Length of Report Descriptor */ of HID Descriptor from 0x1C,0x00, to 111,0x00,
Regards,
Hemanth