I have a couple of FPGA setups to capture images from an Aptina/ONSemi MT9P031 sensor. I've done this in the past with no issues but now I have a strange problem.
I have a bit of scene dependent noise that follows along with some contours of objects that can be seen in the image. Will attach an example, you can see a ring of black or white pixels surrounding the lit-up button on the pictured equipment, and similar garbage on the text or edges of the other buttons.
A couple of REALLY weird things about it -- if I use a Salae logic analyzer, connected to some soldered pins on my board that are on the traces between the camera and my FPGA, it can actually capture a perfectly clean image without this noise. I would have thought if anything this should be worse because it's going off-board across some extra flying leads and at the end of the day the Salae logic is another FPGA.
Two reasons why I don't believe the problem is in my external memory that I use to store the image. One, if I replace pixel data with a test pattern driven by the camera's pixel clock, it comes across perfectly cleanly. I also observe the same effect with the same camera attached to a Cypress FX3 dev board and no FPGA in between.
I've also tried doing what the Salae does, sampling both the pixel clock and data on a faster clock and just looking for the edges in the pixel clock, but the result is the same. I have a hunch that this has something to do with too many bits on the parallel bus trying to change at one time, but it's really curious that the logic analyzer doesn't have the same problem. Anybody have any ideas on this by chance?