02-13-2021 05:23 PM
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.
02-13-2021 06:18 PM
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.