cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
lajitha82
Observer
Observer
217 Views
Registered: ‎12-18-2018

IMX249 CMOS image sensor image data acqusition using KC705

 We have a KC705evaluation board and IMX249 based image sensor board.To configure and read pre-defined pattern  from the sensor, we have done the following steps.

A block design based on microblaze ip core is done in Vivado 2020.1.

From the Vitis IDE, we have configured the sensor in master mode using SPI interface and also wrote the configuration for a pre-defined pattern from the image sensor.

After that we are trying to read pixel data from the CMOS sensor sensor through the LVDS interface and to write it into Block RAM using deserialiser module (code written in Verilog by us)

We are trying to synchronize the line data with SAV and EAV words. That we got the expected SAV and EAV checks correct.

But we are not successful in writing a line data (1080 pixels values (12 bit data corresponding to a pixel)) in a BRAM after receiving the first SAV corresponding to a line.

This we have identified when we tried to read the data stored in BRAM using a BRAM controller read function from VITIS. Its just zeros in all memory locations

If we write a fixed data , incremental count to the BRAM instead of pixel data , we are able to read the same using BRAM controller from VITIS IDE.

We are actually stuck in the testing. The problem what we are facing is, we are able to deserialise the pixel data from the image sensor, but not able to write it properly to the BRAM.

Please help us in this regard.

Thanks

Lajitha

Tags (1)
0 Kudos
1 Reply
u4223374
Advisor
Advisor
201 Views
Registered: ‎04-26-2015

Do you know which line of the image you're getting?

 

I can't access the datasheet for the IMX249, but most (all?) of these sensors have a few lines of unused/blank pixels at the top and bottom. Those should be zero - so if you're just reading the first line then all zeros is precisely what you should expect. If anything, this means that your code is working well.

 

Try having it wait for maybe the 200th line and store that instead - I expect you might get more sensible data.