Learn how to optimise USB-C for your designs at 18 May's USB-C PD Webinar.
Click here to register.

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

Not applicable

I have CX3RDK kit with OV7251 sensor. OV7251 is VGA and Black and white ( RAW10 bit)


I added ov7251 init code for I2C write. I2C write is good, because read back value almost same.


But eCAM viewer has [ Resolution : 640x480 ] but, FrameRate: 0.0 fps... and Screen is Black.


And windows can find USB video device. 


I also use a Oscilloscope to measure the sensor's MIPI signal and i can see the normal waveform of it.


I use bus hound to capture the USB data of the usb ports,i can see 30 bytes data from the bulk in endpoint.But the data is not tranfering continously and stopped.


ov7251 sends raw10 data from one mipi lane,its speed is 800Mbps,i set the gpifII's bus width to 16 using    




When i changed the bus width to 8 using parameter "CY_U3P_MIPICSI_BUS_8",the USB port can transfer data to usb continously.I carefully compare the data captured from bus hound of the two kinds of settings.I found the hight 2 bit of raw10 is missing. So i can not use 8 bus width.


The other hand,i opened MACRO "CX3_ERROR_THREAD_ENABLE" to debug whole project and add some log in CyCx3UvcMipiErrorThread,i found some error counts from the mipi block of cx3.The error count is from errCnts.ctlErrCnt.The comment of it saying " /**< Control Error (Incorrect Line State Sequence) Count*/".


Does that mean my CX3 MIPI-CSI block configuration parameters is error or my sensor initilization code is error?

5 Replies
lock attach
Attachments are accessible only for community members.
250 sign-ins 50 solutions authored 25 solutions authored





1)Are you using continuous clock or gated clock? If you are using continuous clock , can you please try changing the sensor configuration to gated clock.


2)The video will not stream properly if the CX3 MIPI CSI configuration is wrong. Can you please attach the screenshot of your MIPI CSI bridge configuration here so that we can verify the same?


3)Attached is the CX3 troubleshooting guide . Please follow the steps mentioned in the same and check if the video is streaming properly.







Not applicable

Thanks for your replying.


My sensor's MIPI csi clock setting is 400Mhz,so the mipi bitrate is 800 Mbps.It is working in continuous clock mode,because i can not see clock lane waveform turns into low power mode.


When i configure the cx3 mipi block to about 400Mhz using the config tool of the ez usb suite,it can not get continous data no matter i use uvc mode or raw mode firmwares.(i can only get about a frame data and then it stopped.)If i change the gpifii bus width to 8 bit,i can get continuous data but the high 2 bit was missing.


Then i tried to configure the mipi block clocks with ov5640's cfgUvcVgaNoMclk(the clock is very low about 218.40mhz,i just changed the first element to CY_U3P_CSI_DF_RAW10) using function CyU3PMipicsiSetIntParams,i can get the raw data continuously.It's pretty strange.I think the data may not be complete.


I think i should configure the cx3 mipi csi block clock setting according from the sensor mipi clock settings.Is that right?


Lower mipi clock configuration which can send data continuously
CyU3PMipicsiCfg_t cfgUvcVgaNoMclk =  { 
    CY_U3P_CSI_DF_RAW10,       /* dataFormat   */     19.2
    1,                            /* numDataLanes */     1
    0x1,                          /* pllPrd       */     2
    90,                           /* pllFbd       */     91
    CY_U3P_CSI_PLL_FRS_125_250M,   /* pllFrs      */             125~250( pll out clock: 218.40mhz)
    CY_U3P_CSI_PLL_CLK_DIV_2,     /* csiRxClkDiv  */     2(csiRx clock:109.20)
    CY_U3P_CSI_PLL_CLK_DIV_8,     /* parClkDiv    */     8(pixel clock:27.30)
    0x00,                         /* mclkCtl      */    
    CY_U3P_CSI_PLL_CLK_DIV_8,     /* mClkRefDiv   */    
    640,                          /* hResolution  */    
    0x01                          /* fifoDelay    */     1(delay time 0.18us)


The configuration which i think is right but do not work:


/* OV7251_RAW10_VGA :  */
CyU3PMipicsiCfg_t OV7251_RAW10_VGA =  
    CY_U3P_CSI_DF_RAW10,  /* CyU3PMipicsiDataFormat_t dataFormat */
    1,                          /* uint8_t numDataLanes */
    2, /* uint8_t pllPrd */
    123, /* uint16_t pllFbd */
    CY_U3P_CSI_PLL_FRS_500_1000M, /* CyU3PMipicsiPllClkFrs_t pllFrs */  (793.60mhz)
    CY_U3P_CSI_PLL_CLK_DIV_8, /* CyU3PMipicsiPllClkDiv_t csiRxClkDiv */ (99.20mhz)
    CY_U3P_CSI_PLL_CLK_DIV_8, /* CyU3PMipicsiPllClkDiv_t parClkDiv */ (output pixel clock 99.2mhz)
    0,                /* uint16_t mClkCtl */
    CY_U3P_CSI_PLL_CLK_DIV_2, /* CyU3PMipicsiPllClkDiv_t mClkRefDiv */
    640,        /* uint16_t hResolution */
    50                        /* uint16_t fifoDelay */

Not applicable

Hi Joezxd,

If possible can you show your uvc descriptor code?

I also work with RAW10 format image sensor, but don't know how set desc exactly

Please help




     Have you solved the problem? Can you kindly share the solution with me? Thanks!



This issue was marked solved by following our suggestions in the following thread:

Best Regards,