3 Replies Latest reply on Oct 30, 2019 2:32 AM by KandlaguntaR_36

    CX3 use isochronous mode issue

    soqi_4187516

      I used isochronous mode with CX3, But the test app Amcap always black screen.  I am not sure the whether the config parameters are right, i have upload my code.   It would be greatly appreciated If you can help on this issue.

       

      we use 1280 x 800@15 fps, win10 platform. I use this macro "VS_ISOCHRONOUS_MODE" to switch bulk and isoc.

       

      1.It shows that PC can get some data in the wireshark, like below.

      2. When I open the camera, the uart log is as below:

       

      MipiErrorThread Init.

      AppInit:GpifSMStart passed

      AppInit:fw version:1.11.27

                                d = 0 Cons = 0  Prtl_Sz = 0 Frm_Cnt = 0 Frm_Sz = 0 B

      Prod = 0 Cons = 0  Prtl_Sz = 0 Frm_Cnt = 0 Frm_Sz = 0 B

      status_t0 = 0, status_t1 = 0

      Prod = 0 Cons = 0  Prtl_Sz = 0 Frm_Cnt = 0 Frm_Sz = 0 BCyCx3AppGetProbeControlData 1

      CX3_APP_VS_PROBE_CONTROL ,1

      CY_U3P_SUPER_SPEED = 1CyCx3AppGetProbeControlData 1

      CX3_APP_VS_PROBE_CONTROL ,1

      CY_U3P_SUPER_SPEED = 1CyCx3AppGetProbeControlData 1

      CX3_APP_VS_COMMIT_CONTROL ,1

      AplnStrt:CyCx3AppStart CyCx3AppStart

      AplnStrt:SMState = 0x2

      CB failure

      UsbCB:Call AppStop CyCx3AppThread_Entry

      AplnStop:SMState = 0x5

      AplnStrt:CyCx3AppStart CyCx3AppStart

      AplnStrt:SMState = 0x1

      AplnStrt:CyCx3AppStart CyCx3AppStart

      AplnStrt:SMState = 0x2

      Prod = 29 Cons = 29  Prtl_Sz = 23120 Frm_Cnt = 1 Frm_Sz = 1090784 B

      CB failure

      UsbCB:Call AppStop CyCx3AppThread_Entry

      AplnStop:SMState = 0x5

      AplnStrt:CyCx3AppStart CyCx3AppStart

      AplnStrt:SMState = 0x1

      Prod = 55 Cons = 55  Prtl_Sz = 23120 Frm_Cnt = 2 Frm_Sz = 2048000 B

      status_t0 = 0, status_t1 = 69

      status_t0 = 0, status_t1 = 69

      status_t0 = 0, status_t1 = 69

      status_t0 = 0, status_t1 = 69

      status_t0 = 0, status_t1 = 69

        • 1. Re: CX3 use isochronous mode issue
          KandlaguntaR_36

          Hello,

           

          In general, the standard UVC host applications cannot stream the RAW format video.

          Please refer this KBA: Streaming RAW10 Format Input Data to 16/24-bit Output Format in CX3 MIPI CSI-2 - KBA224387 for more details on this.

           

          As per the UART Logs, there are commit buffer failures. This happens when the host is streaming the data at slower rate than that of image sensor.

           

          Please test the application in Bulk Mode and confirm whether the data is streaming fine.

           

          Since the standard Amcap cannot stream the RAW 10 format, you may not see the video in both bulk and isoc modes.

           

          Hence, you can confirm the correct frame size by probing the PCLK, HSYNC and VSYNC test pins and capturing the WireShark trace.

           

          Regards,

          Sridhar

          • 2. Re: CX3 use isochronous mode issue
            soqi_4187516

            Hi,

               Thanks for your reply.

             

               The sensor output data is raw10, but it transfer as YUYV, 16bit in Cypress. And it is normal when use bulk mode with Amcap, so I think it maybe something wrong when i change to isochronous mode.

            • 3. Re: CX3 use isochronous mode issue
              KandlaguntaR_36

              Hello,

               

              - Change the define of CY_FX_EP_ISO_VIDEO_SS_MULT 1.

              - Make the 'Bytes per interval' field of Super speed companion descriptor as

              0x00, 0x04 * (CY_FX_EP_ISO_VIDEO_SS_MULT) * (CY_FX_EP_ISO_VIDEO_SS_BURST)  //This is 3KB in your case

              - UVC Probe control settings should be updated with the maximum payload size calculated using BURST length and MULT settings. The maximum payload size should be (CY_FX_EP_ISO_VIDEO_SS_BURST) * (CY_FX_EP_ISO_VIDEO_SS_MULT) * (Max Endpoint size).

              - According the firmware that you have shared, UVC headers are not being added by CX3. So, they must be added by an FPGA? - Please confirm. If yes, then there is no need to call CyCx3UvcAppAddHeader()

              - Please remove DebugPrints in DmaCallback.

               

              A similar issue is addressed in this thread: CX3 Isochronous mode . Please have a look.

               

              Regards,

              Sridhar