Hello! I am using the FX3 with a Sony IMX290 image sensor. I am using the sensor’s CMOS parallel output with the XVS and XHS output pins for the line valid and frame valid syncs. I am currently set up for 1080p 30 f/s on a 74.25MHz pixel clock.
My question is that in reading the image sensor data sheet, I realize that along with the detecting the pulses from the XVS and XHS, sync codes must also be read from the data bus to determine when the image sensor data is valid. There are four sync codes that appear consecutively. Furthermore, there seems to be some dummy data before the recording pixels start. This seems in contrast to the On Semi sensors and what is used in the AN75779 app note where the hardware signal pulses provide all the information required for valid data.
Is it possible to modify the GPIF II project to read these sync codes before pushing data out for each frame line? I have read through the forums/GPIF tech manual and it looks like the CMP_DATA action for each state would work. However, as someone else has mentioned on the forum, when you use that action for multiple states, it doesn't allow different values for each state... it is more like a global value that is used for every time you use that action. The suggestion was that you must program the register directly, but there must be enough time for the transition. Is this possible to do with an image sensor operating this fast? Here is a link to that forum post. https://community.cypress.com/thread/16005?q=compare%20data
If I can make a change to the register that holds the CMP_DATA value, do I have to compile the GPIF II project and make those changes in the actual code that is created in the .c that is the output from that project?
Do you have any examples of a project like this?
Also, I am still unclear how to properly use the Unmask value on the CMP_DATA action. If I am using a 10 bit parallel output and I want to detect 0x3FFh, what does the Unmask Value need to be? My data bus is set up for 16bits on the FX3.