3 Replies Latest reply on Jan 23, 2019 10:18 PM by YangyangC_06

    CX3 UVC camera no function after connect with PC HighSpeed USB Port

    AnWa_3863696

      Hi,

      I have checked the following discussion below for similar issue. But this does not solve my problem.

      https://community.cypress.com/thread/34622?start=0&tstart=0.

      In PC device manager, the device error code is 10.

      I try to use EZ USB Suite and give default configuration, after download the build image into CX3 RDK,

      PC device manager still show me this error.

      What should I do in order to let PC can recognize this UVC camera on CX3 RDK?

      Attached file is the project I used to test this issue.

      Thanks

      Angus

        • 1. Re: CX3 UVC camera no function after connect with PC HighSpeed USB Port
          AnWa_3863696

          Find same issue report here

          CX3 configuration utility source code

           

          It's a shame, a tool bug need so long time to fix it.

          Angus

          • 2. Re: CX3 UVC camera no function after connect with PC HighSpeed USB Port
            YangyangC_06

            Hi Angus,

             

            Sorry for the inconvenience. Looks like the error codes comes when the host could not get correct configuration descriptor from CX3.

            For example, if CX3 states the length of configuraiton descfriptor as 100(bytes) but only sends 90 bytes back, the command get_descriptor will fail.

            You could refer to the work-around in previous community thread to fix it.

             

            Update due to the mistake before.

            #ifdef CX3_UVC_1_0_SUPPORT
            #ifdef STILL_CAPTURE_ENABLE
            0x50, 0x01,
            #else
            0x39, 0x01,                         /* Length of this descriptor and all sub descriptors */
            #endif
            #else
            #ifdef STILL_CAPTURE_ENABLE
            0x51, 0x01,
            #else
            0x3A, 0x01,                         /* Length of this descriptor and all sub descriptors */
            #endif
            #endif
            

             

            The total length filed should be equal to or bigger than(in some OS it could work) the real length of configuration descriptor.

            For example, if CX3 states the configuration descriptor is 90 bytes, then the host will require 90 bytes in next control tranfer. However, once the descriptor is 100 bytes, then host could not undetstand the information of this device with receiving only 90 bytes. Enuermation will fail.

            • 3. Re: CX3 UVC camera no function after connect with PC HighSpeed USB Port
              YangyangC_06

              Hi Angus,

               

              Have you solved this problem based on previous reply? I also have checked your project to find that no VS format and VS frame descriptors.

              For example the information below.

                  /* Class specific VS format descriptor */
                  0x1B,                               /* Descriptor size */
                  ES_UVC_CS_INTRFC_DESCR,             /* Class-specific VS interface Type */
                  0x04,                               /* Subtype : VS_FORMAT_UNCOMPRESSED  */
                  0x01,                               /* Format desciptor index */
                  0x01,                               /* Number of Frame Descriptors that follow this descriptor: 2 */
                  /* GUID, globally unique identifier used to identify streaming-encoding format: YUY2  */
                  0x59, 0x55, 0x59, 0x32,             /*MEDIASUBTYPE_YUY2 GUID: 32595559-0000-0010-8000-00AA00389B71 */
                  0x00, 0x00, 0x10, 0x00,
                  0x80, 0x00, 0x00, 0xAA,
                  0x00, 0x38, 0x9B, 0x71,
                  0x10,                               /* Number of bits per pixel: 16*/
                  0x01,                               /* Optimum Frame Index for this stream: 1 (640x480) */
                  0x00,                               /* X dimension of the picture aspect ratio; Non-interlaced */
                  0x00,                               /* Y dimension of the pictuer aspect ratio: Non-interlaced */
                  0x00,                               /* Interlace Flags: Progressive scanning, no interlace */
                  0x00,                               /* duplication of the video stream restriction: 0 - no restriction */
              
              
                  /* Class specific Uncompressed VS frame descriptor 1 - 640x480@60fps*/
                  0x1E,                               /* Descriptor size */
                  ES_UVC_CS_INTRFC_DESCR,             /* Descriptor type*/
                  0x05,                               /* Subtype: Uncompressed frame interface*/
                  0x01,                               /* Frame Descriptor Index: 1 */
                  0x00,                               /* No Still image capture method supported */
                  0x80, 0x02,                         /* Width in pixel:  640 */
                  0xE0, 0x01,                         /* Height in pixel: 480 */
                  0x00, 0x00, 0x94, 0x11,             /* Min bit rate (bits/s): 640 x 480 x 2 x 60 x 8 = 294912000 */
                  0x00, 0x00, 0x94, 0x11,             /* Max bit rate (bits/s): Fixed rate so same as Min  */
                  0x00, 0x60, 0x09, 0x00,             /* Maximum video or still frame size in bytes(Deprecated): 640 x 480 x 2*/
                  0x15, 0x16, 0x05, 0x00,             /* Default frame interval (in 100ns units): (1/60)x10^7 */
                  0x01,                               /* Frame interval type : No of discrete intervals */
                  0x15, 0x16, 0x05, 0x00,             /* Frame interval 3: Same as Default frame interval */
              

               

              In general, they should exist between input header descriptor and endpoint descriptor.

               

              I also try to build a demo project with random configuration parameters to find the USB2.0 configuration is correct. See attachment for more information.

              Could you please check if you are using latest version of SDK. I am using not the latest version but 1.3.3 on my side.