2 Replies Latest reply on Jan 8, 2013 11:33 AM by userc_42477

    UVC Endpoint companion descriptors

      I am working to create firmware for USB Video class, and I am using the USB VideoClassBulk and the HD example to send uncompressed data.  So far, I seem to be succesful in transmitting test patterns (using the DMA as the source), but when I use USB Device Viewer (from Visual Studio) to view the USB descriptors, I see some errors related to the Endpoint compansion descriptor.  Here is the suspect code:


          /* Video control status interrupt endpoint descriptor */
          0x07,                                                             /* Descriptor size */
          CY_U3P_USB_ENDPNT_DESCR,        /* Endpoint descriptor type */
          CY_FX_EP_CONTROL_STATUS,           /* Endpoint address and description */
          CY_U3P_USB_EP_INTR,                        /* Interrupt end point type */
          0x00,0x04,                                                   /* Max packet size = 1024 bytes */
          0x01,                                                            /* Servicing interval */

          /* Super speed endpoint companion descriptor */
          0x06,                                                            /* Descriptor size */
          CY_U3P_SS_EP_COMPN_DESCR,    /* SS endpoint companion descriptor type */
          0x00,                                                            /* Max no. of packets in a Burst : 1 */
          0x00,                                                            /* Mult.: Max number of packets : 1 */
          0x00,0x04,                                                  /* Bytes per interval : 1024 */


      This is what USB Device Viewer shows:


                ===>Endpoint Descriptor<===
      bLength:                                  0x07
      bDescriptorType:                   0x05
      bEndpointAddress:               0x82  -> Direction: IN - EndpointID: 2
      bmAttributes:                          0x03  -> Interrupt Transfer Type, Usage Type = Periodic

      *!*ERROR:     Endpoint Companion Descriptor missing
      wMaxPacketSize:                  0x0400
      bInterval:                                 0x01
      *!*CAUTION:  Unknown bDescriptorSubtype
                ===>Descriptor Hex Dump<===
      bLength:                                  0x06
      bDescriptorType:                   0x30
      06 30 00 00 00 04


      Any thoughts for why this is happening?  I tried this with the supplied code, and I see the same error. 


      As I said, I am still getting video, so this is not a fatal error, but I get concerned when I see these things.  Any ideas?