Modifications in AN75779 to Support UVC Spec 1.1 - KBA218340

Version: **

 

Question:

What are the modifications required in the AN75779 example project to support UVC Spec version 1.1? 

 

Answer:

The example project in the current version (Rev. *G) of AN75779 supports UVC 1.0. The following modifications are required in the example project to support UVC 1.1:

  1. In the cyfxuvcdscr.c file, for CyFxUSBHSConfigDscr[ ] and CyFxUSBSSConfigDscr[ ]:
      Change the UVC spec version in Class Specific VC Interface Header Descriptor from 0x00, 0x01 to 0x10, 0x01.
  2. In the uvc.c file, add an additional eight bytes for glProbeCtrl after the dwMaxPayloadTransferSize field:   

    uint8_t glProbeCtrl[CY_FX_UVC_MAX_PROBE_SETTING] = {
       0x00, 0x00,                        /* bmHint : no hit */
       0x01,                                  /* Use first video format index */
       0x01,                                  /* Use first video frame index */
       0x15, 0x16, 0x05, 0x00,  /* Desired frame interval in the unit of 100 ns: 30 fps */
       0x00, 0x00,                        /* Key frame rate in key frame/video frame units: only applicable to
                                                      video streaming with adjustable compression parameters */
       0x00, 0x00,                        /* PFrame rate in PFrame/key frame units: only applicable to video
                                                      streaming with adjustable compression parameters */
       0x00, 0x00,                        /* Compression quality control: only applicable to video streaming
                                                      with adjustable compression parameters*/
       0x00, 0x00,                        /* Window size for average bit rate: only applicable to video
                                                      streaming with adjustable compression parameters */
       0x00, 0x00,                        /* Internal video streaming if latency in ms */
       0x00, 0x48, 0x3F, 0x00,   /* Maximum video frame size in bytes */
       0x00, 0x40, 0x00, 0x00   /* No. of bytes device can receive in single payload = 16 KB */  

      

    /* Additional eight bytes */ 

      

    0x00, 0x60, 0xE3, 0x16,   /* Device Clock in Hz */
       0x00,                                    /* Framing Information - Ignored for uncompressed format*/
       0x00,                                    /* Preferred payload format version */
       0x00,                                    /* Minimum payload format version */
       0x00                                     /* Maximum payload format version */
       }

  3.  

    In the uvc.h file, change:
       CY_FX_UVC_MAX_PROBE_SETTING from 26 to 34
       CY_FX_UVC_MAX_PROBE_SETTING_ALIGNED from 32 to 64.