CX3 Image sensor not outputting MIPI data after initialization

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

cross mob
ScGr_289066
Level 5
Level 5
100 replies posted 50 replies posted 25 replies posted

Hi All,

I have designed a camera interface for the OV5647 image sensor using the CX3.  I have replaced the e-con systems libCX3OV5640 module with code to initialize the OV5647 sensor.  In this code, I have used Cy3U3PDebugPrint() statements to know that the sensor is being correctly programmed (it acknowledges all the register writes).

At the end of initialization, the sensor is not outputting any video data on the MIPI bus.  Whereas, when I examine the E-Con Systems RDK, I see OV5640 sensor output after 2 is written to 0x3008 as the last step of initialization.

I was under the impression that once the sensor is initialized it begins streaming data and the CX3 simply receives and transfers it to the PC.  But there seems to be more to it than that.  Can anyone explain?

Any comments much appreciated.

Thanks,

Scott

0 Likes
1 Solution

Hi Scott,

Have you checked the configuration with OmniVision FAE?  We expect you

1. get correct configuration from OmniVision.

2. All the registers are set correctly.

It's is acceptable that some of the registers are not documented in datasheet but all the registers must be written correctly.

View solution in original post

0 Likes
4 Replies
YangyangC_06
Employee
Employee
750 replies posted 500 replies posted 250 replies posted

Hi Scott,

Could you please confirm if all the registers are set the correct value? You need to check the I2C communication with a logic analyzer or read registers value back after writting.

0 Likes

Hi,

Thanks for the reply.

Yes, I have used a logic analyzer to verify that the sensor acks all of the writes.  I will try reading back the registers to verify their content although I don't believe this is the issue.

Scott

0 Likes

Hi All,

At yyca's suggestion I added read-after-write checking code to the initialization routines and am more confused!  In the stream of resister initialization messages, most registers verify after programming.  That is their content matches the written values.  But well over 100 registers don't.  These registers seem to fall into two categories: undocumented registers, those not listed in the OmniVision data sheet, and registers where all the bits are not documented (again, in the OV data sheet).

Any thoughts on why there would be writes to undocumented registers?  and why some unused bits are being set?

Thanks,

Scott

0 Likes

Hi Scott,

Have you checked the configuration with OmniVision FAE?  We expect you

1. get correct configuration from OmniVision.

2. All the registers are set correctly.

It's is acceptable that some of the registers are not documented in datasheet but all the registers must be written correctly.

0 Likes