Help CX3 + OV4689 MIPI-CSI2 RAW10

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

cross mob
AvOm_4629506
Level 2
Level 2
First like given Welcome!

Good Day!

OV4689 sensor + your CX3 chip + libraries 1.3.4. I work on Linux.

Sensor:

/* EXTCLK 24 MHz

* SCLK 120 MHz

* MIPI_CLK 150 MHz

* MIPI_PCLK 30 MHz

* MIPI lane 4

* cropping 2688*1520 -> 1280*960 | binning 2*2 = 640*480

* fps 60

* RAW10

*/

CX3

/*

* PLL_CLK = 152

* CSI RX LP<->HS = 38

* PCLK = 38

* GPIF 16bit

*/

CyU3PMipicsiCfg_t cfgMIPI_640_480_60_NoMclk = {

CY_U3P_CSI_DF_RAW10,

4, //num lane

0x1, //PLL_PRD

27, //PLL_FBD

CY_U3P_CSI_PLL_FRS_125_250M, //PLL_FRS

CY_U3P_CSI_PLL_CLK_DIV_4, //csiRxClkDiv

CY_U3P_CSI_PLL_CLK_DIV_4, //parClkDiv

0, //mClkCtl

CY_U3P_CSI_PLL_CLK_DIV_4, //mClkRefDiv

640, //640

0

};

I use a low speed MIPI to watch the oscilloscope what is happening there ( it is unrealistic to parse such a number of packets, but when it is nice to see that it is alive:) )

When I pass a static image(without MIPI) everything works.

Problem:

1.Hangs, I suspect that when calling CyU3PDmaMultiChannelGetBuffer(chHandle, &Dma Buffer, CYU3P_NO_WAIT); (but this is not accurate). 

The DMA runs several times (usually 2 or 3) on the full packet(CY_FX_VS_STREAM_BUF_SIZE (12800) CY_FX_VS_STREAM_BUF_COUNT (5)) and the processor freezes. 

I use A mini 500 MS restart timer. When I play with the CyU3PMipicsiSetPhyTimeDelay settings, it happens that I receive packets of not full length of about 1400bytes and then for some reason there are no freezes , but a bunch of errors on MIPI. And when you configure everything correctly(as I think), the processor freezes(after several packets) and even the timer does not help.

what can this be related to ?

2. GPIF sometimes throws out undescribed States 131 and 132 ( CX3_INVALID_GPIF_STATE (257))

what do these States mean ??

3. CyU3PMipicsiSetPhyTimeDelay  - what values is thsSettleDelay set in ns or CSI Link LP<->HS CLK

0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello,

1.Hangs, I suspect that when calling CyU3PDmaMultiChannelGetBuffer(chHandle, &Dma Buffer, CYU3P_NO_WAIT); (but this is not accurate).

>> Please share the debug prints.

>>Also confirm that you are using the default project created by the CX3 Configuration Utility as per this KBA Steps to Setup up MIPI CSI Camera Solution with CX3 – KBA225748

>> Please probe the HSYNC, VSYNC and PCLK test points on CX3 and share the traces. Please refer to question 10 of CX3 Hardware: Frequently Asked Questions - KBA91295

2.GPIF sometimes throws out undescribed States 131 and 132 ( CX3_INVALID_GPIF_STATE (257))

what do these States mean ??

>> These are the mirror states. you can read about mirror states in the Programmers manual (in SDK). If state 3 is having mirror state the state ID will be (128+3= 131). Please refer to answer of this thread Find GPIF2 mirror state IDs

3. CyU3PMipicsiSetPhyTimeDelay  - what values is thsSettleDelay set in ns or CSI Link LP<->HS CLK

PHY time delay value=   {[THS_Prepare(in ns) + (THS_Zero(in ns)/2)] ÷ [(1÷(CSI RX LPß à HS Clock(MHz) ×1000)] }-1

For more details refer to this KBA

Analysis of CX3 Video Timing Parameters – KBA226779

Regards,

Rashi

Regards,
Rashi

View solution in original post

0 Likes
1 Reply
Rashi_Vatsa
Moderator
Moderator
Moderator
5 likes given 500 solutions authored 1000 replies posted

Hello,

1.Hangs, I suspect that when calling CyU3PDmaMultiChannelGetBuffer(chHandle, &Dma Buffer, CYU3P_NO_WAIT); (but this is not accurate).

>> Please share the debug prints.

>>Also confirm that you are using the default project created by the CX3 Configuration Utility as per this KBA Steps to Setup up MIPI CSI Camera Solution with CX3 – KBA225748

>> Please probe the HSYNC, VSYNC and PCLK test points on CX3 and share the traces. Please refer to question 10 of CX3 Hardware: Frequently Asked Questions - KBA91295

2.GPIF sometimes throws out undescribed States 131 and 132 ( CX3_INVALID_GPIF_STATE (257))

what do these States mean ??

>> These are the mirror states. you can read about mirror states in the Programmers manual (in SDK). If state 3 is having mirror state the state ID will be (128+3= 131). Please refer to answer of this thread Find GPIF2 mirror state IDs

3. CyU3PMipicsiSetPhyTimeDelay  - what values is thsSettleDelay set in ns or CSI Link LP<->HS CLK

PHY time delay value=   {[THS_Prepare(in ns) + (THS_Zero(in ns)/2)] ÷ [(1÷(CSI RX LPß à HS Clock(MHz) ×1000)] }-1

For more details refer to this KBA

Analysis of CX3 Video Timing Parameters – KBA226779

Regards,

Rashi

Regards,
Rashi
0 Likes