USBVideoClass firmware : Device not steaming when trying to configure UVC descriptors to send YUY2 images

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

cross mob
Anonymous
Not applicable

Hello,

   

I tried to modify the descriptors in the firmware project "USB Video Class Bulk" provided with the SDK. The descriptors are originally configured to stream MJPEG images stored in "vidframes" structure. When "Class specific VS format" and "Class specific VS frame" descriptors are modified to stream YUY2 images, the device is successfully recognized by host but cannot begin streaming any data. In "MJPEG mode" it works correctly.

   

The attached text file contains the descriptors and other structures I've modified.

   

Did anyone get the same problem and solved it ?

   

 

   

Regards.

0 Likes
8 Replies
Anonymous
Not applicable

I contacted Cypress support and got my case resolved.

   

Regards.

0 Likes
Anonymous
Not applicable

 

0 Likes
Anonymous
Not applicable

I have the same problem. I want to modify the USBVideoClassBulk example for YUY2 format instead of MJPEG.
How can I modify cyfxuvcdscr.c & cytxuvcinmem.h ?
I'm trying to send 1 frame which size is 176x144x2=50688 bytes.

>>>
I found the error message from USB Device Viewer : "no Color Matching Descriptor for this format"

0 Likes
Anonymous
Not applicable

The data from FX3 to Host is sent only 32KB but My data size is 176x144x2=50688.

   

I think this is from CYMEM_256K definition. In this case i can use only 32KB buffer areas.

   

I have CYUSB3014  that SRAM size is 512KB. How can I change CYMEM_512K environment?

0 Likes
Anonymous
Not applicable

Hi, I solved the problem by myself.
I changed the dwMaxzPayloadTransferSize value from 0x4268(16Kb) to 0xc800(50KB)
in the UVC Probe Control Setting. then I can send 176*144 YUY2 one frame to the host.

0 Likes
AlFe_1631716
Level 1
Level 1
First like received

Hello,

   

I've tried to modify the firmware project "USB Video Class" provided with the FX3 SDK to streaming video from an OV5640 camera (YUY2, 15fps, resolution 640x480 and, for the moment, at USB 2 speed). The USB communication (analyzed with a protocol analyzer) seems to run in the right mode: after the first phase of descriptors collection and pre-streaming dialog between the host and the camera this one sends continuos payload to the host (with the right dimension 16KB and the right UVC video data header, EOF, FID,...). But the host application (for example AMCap, that runs on a windows 10 pro 64-bit based platform) display a black screen, and I'm sure that the content of the payloads changes if I rotate the camera. I observed with USBview application the error "*!*ERROR:  no Color Matching Descriptor for this format" at the end of the Video Streaming Uncompressed Format Type Descriptor as shown in the attachment. 
 
Where could be the problem? What can I do to resolve it?   

   

Thank you.

0 Likes
Anonymous
Not applicable

Were you able to find a fix for the issue: "*!*ERROR:  no Color Matching Descriptor for this format".

   

If not add the following snippet after VIDEO and STILL descriptors (And don't forget to increase the total size of the Class specific descriptor by 6) in your code:

   

  /* Colour matching descriptor - Required to remove USBview error */
  0x06,                               /* Descriptor size */
  CX3_CS_INTRFC_DESCR,                /* Class-specific VS interface Type */
  0x0D,                               /* Subtype : VS_COLORFORMAT */
  0x01,                               /* bColorPrimaries */
  0x01,                               /* bTransferCharacteristics */
  0x04,                               /* MatrixCoefficients */

   

The above snippet works to remove the error- "*!*ERROR:  no Color Matching Descriptor for this format".

0 Likes
Anonymous
Not applicable

Even i am facing same problem. Please help me out by telling how you resolved it

0 Likes