11 Replies Latest reply on Sep 17, 2019 2:49 AM by KandlaguntaR_36

    CX3 Image Sensor Interface: 2 extra lines are needed

    user_2884081

      I'm using the CX3 device as an interface between a Sony IMX219 image sensor and the PC via USB3.0.

       

      After using the Denebola kit, I was able to create a custom board and use the Sony sensor and not the Omnivision one used in the Denebola.

      Right now, the custom board works with 4 MIPI lanes.

       

      I can configure my sensor through I2C to the configuration I want. With the Cypress Mipi Configuration Tool I can obtain the MIPI block parameters to make it work.

      Input parameters:

      • THS-Prepare: 60
      • THS-Zero: 250
      • Input video format: RAW8
      • Output video format: 16-bit
      • Data lanes: 4
      • CSI Clock: 480MHz
      • H-Active: 1638
      • H-Blanking: 1810
      • V-Active: 1232
      • V-Blanking: 50
      • Frame rate: 93

       

      Output parameters:

      CyU3PMipicsiCfg_t cfgUvcFullFOVx2Mipi4Raw8 =  {

      CY_U3P_CSI_DF_RGB565_2,      /* dataFormat   */

      4,                          /* numDataLanes */

      2,                        /* pllPrd       */

      123,                          /* pllFbd       */

      CY_U3P_CSI_PLL_FRS_250_500M, /* pllFrs       */

      CY_U3P_CSI_PLL_CLK_DIV_4,    /* csiRxClkDiv  */

      CY_U3P_CSI_PLL_CLK_DIV_4,    /* parClkDiv    */

      0,                        /* mclkCtl      */

      CY_U3P_CSI_PLL_CLK_DIV_2,    /* mClkRefDiv   */

      1638,                        /* hResolution  */

      0                        /* fifoDelay    */

      };

       

      PHY Delay is 18.

       

      GPIF Bus width is 16 bits.

       

      I have a debugging system and can confirm that the GPIF is getting the bytes correctly.

      However, in order to see the video stream on a viewer (e-CamVIEW), I need to tell the PC 2 extra lines will be sent.

       

      Probe control size in bytes is set to 1638x1234, instead of 1638x1232.

      The frame descriptor is width=819, height=1234, 16bpp.

       

      This way, the viewer shows the stream, but if I set the probe control and frame descriptor to the real size (1638x1232) it doesn't work.

       

      This has happened since I first got the system working, with all resolutions: 1640x1232, 1638x1232, 1080p, 720p, VGA, 820x616.

       

      Why is this happening?