5 Replies Latest reply on Apr 27, 2020 12:01 AM by HemanthR_06

    Superspeed HID

    WGT_4383351

      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?

        • 1. Re: Superspeed HID
          JayakrishnaT_76

          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

          • 2. Re: Superspeed HID
            WGT_4383351

            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 */

            • 3. Re: Superspeed HID
              HemanthR_06

              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

              1 of 1 people found this helpful
              • 4. Re: Superspeed HID
                WGT_4383351

                When changing CyU3PConnectState to SS without other changes, the enumeration failed on Windows.

                • 5. Re: Superspeed HID
                  HemanthR_06

                  Hi,

                   

                  Please change the field: /* Total Length of Report Descriptor */ of HID Descriptor from 0x1C,0x00, to 111,0x00,

                   

                  Regards,

                  Hemanth