UVC Endpoint companion descriptors

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

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?

   

Thanks

   

MM

0 Likes
2 Replies
Anonymous
Not applicable

I think it's complaining about a missing *UVC* endpoint descriptor. See section 3.8.2.2 of the UVC 1.1 spec.

Steve 

Anonymous
Not applicable

I think I found the issue.  USBView (a MS Windows product) is still catching up to Superspeed 3.0, and I don't think it knows what to do with endpoint companion descriptors.  Looking that the configuration view in USB control center (supplied by Cypress in FDK) for the same code above, and everything looks fine.  Will try to confirm with MS. 

   

MacD

0 Likes