CX3 can't get the data from the OV12895(12M sensor)

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

cross mob
Anonymous
Not applicable

     Hello, I try to connect the OV12895 to the CX3(denebola), there are many issues. I make a daughter board to connect the sensor and the CX3, and I can get the 800*480@15fps raw10 data, and the csi-2 clock is 552Mhz, so i think my daughter was work well.

     Then i make the csi clock to 138Mhz, and try to get 4096*3072@1fps image, but failed. I uncomment the CX3_ERROR_THREAD_ENABLE and print the error code per 5 secs, I can get some info.

pastedImage_14.png

frmErrCnt;          /**< Framing Error Count*/

crcErrCnt;          /**< CRC Error Count*/

mdlErrCnt;          /**< Multi-Data Lane Sync Byte Error Count*/

ctlErrCnt;          /**< Control Error (Incorrect Line State Sequence) Count*/

eidErrCnt;          /**< Unsupported Packet ID Error Count */

recrErrCnt;         /**< Recoverable Packet Header Error Count*/

unrcErrCnt;         /**< Unrecoverable Packet Header Error Count*/

recSyncErrCnt;      /**< Recoverable Sync Byte Error Count*/

unrSyncErrCnt;      /**< Unrecoverable Sync Byte Error Count*/

I don't know what is it actually mean, and how can I fix it .

my configure:

CyU3PMipicsiCfg_t OV12895_RAW10 =

{

    CY_U3P_CSI_DF_RAW10,  /* CyU3PMipicsiDataFormat_t dataFormat */

    4,                          /* uint8_t numDataLanes */

    3,          /* uint8_t pllPrd */

    139,        /* uint16_t pllFbd */

    CY_U3P_CSI_PLL_FRS_500_1000M, /* CyU3PMipicsiPllClkFrs_t pllFrs */

    CY_U3P_CSI_PLL_CLK_DIV_8, /* CyU3PMipicsiPllClkDiv_t csiRxClkDiv */

    CY_U3P_CSI_PLL_CLK_DIV_8, /* CyU3PMipicsiPllClkDiv_t parClkDiv */

    0x0606,                 /* uint16_t mClkCtl */

    CY_U3P_CSI_PLL_CLK_DIV_8, /* CyU3PMipicsiPllClkDiv_t mClkRefDiv */

    4096,         /* uint16_t hResolution */

    0                         /* uint16_t fifoDelay */

}

pastedImage_0.png

and I can capture the MIPI wave, but the DMA callback never called.

0 Likes
1 Solution

Yes, the THS Prepare should be in between the Min. and Max. shown in the tool. You also need to configure the MIPI THS Settle time using the CyU3PMipicsiSetPhyTimeDelay API.

The second argument of theCyU3PMipicsiSetPhyTimeDelay API is the PHY Time Delay Value generated by the tool. (See the bottom right corner of the attached screen shot)

View solution in original post

0 Likes
5 Replies
KandlaguntaR_36
Moderator
Moderator
Moderator
25 solutions authored 10 solutions authored 5 solutions authored

You will receive errors when you do not configure the MIPI properly.

Why did you set VActive to to 10. It is supposed to be 3072. Isn't it?

Can you please get the correct the HActive and Hblanking values, similarly VActive and VBlanking values from the sensor manfacturer and put them in the MIPI Configuration tool?

0 Likes
Anonymous
Not applicable

my sensor output 4096*3072@3.75FPS, MIPI clock 139MHz, and I measure the waveform like blew:

THS-prepare:     340ns

pastedImage_0.png

THS-Zero610ns

pastedImage_1.png

V-active: 246.8ms

pastedImage_2.png

V-Blanking: 20.6ms

pastedImage_3.png

H-Active: 74.4us

pastedImage_4.png

H-Blanking:6.2u

pastedImage_5.png

I calculate the THS-Prepare and THS-Zero:

H-Blanking: 4096/74.4*6.2 = 341 Pixel

V-Blanking: 3072/246.8*20.6 = 256 Line

0 Likes
Anonymous
Not applicable

And my CX3 configure like blew:

pastedImage_0.png

Does this mean that the THS-prepare is too long? Do I need to configure the Sensor to shorten THS-prepare time?

0 Likes

Yes, the THS Prepare should be in between the Min. and Max. shown in the tool. You also need to configure the MIPI THS Settle time using the CyU3PMipicsiSetPhyTimeDelay API.

The second argument of theCyU3PMipicsiSetPhyTimeDelay API is the PHY Time Delay Value generated by the tool. (See the bottom right corner of the attached screen shot)

0 Likes
Anonymous
Not applicable

Thank you very much. I can get the raw10 data.

0 Likes