We are doing a proof-of-concept design prior to committing to production. With parts going EOL, we are re-designing a display unit that is required to accept analog camera inputs along with its other duties. We lashed an EVAL-ADV7182A board to a Kiel ARM development board that uses the processor we intend to use and also has an LCD.
We are capturing the digital output from the ADV7182A and placing it into buffers for subsequent rendering. This is a dual core ARM so one core is dedicated to capturing the video while the other one does the rendering.
Rendering is slightly slower than capturing since it must transform YCrCb into RGB, handle interlacing and rotate the image 90 degrees.
All this seems to work. Here is my issue.
I am getting a one or two line jitter on the screen if the input is NTSC. If its PAL the jitter doesn’t appear.
I don’t get any jitter if I let the ADV7182A free run with a test pattern. It only happens with NTSC video on any of the analog inputs using either a camera or a video test generator.
I have played with numerous register settings and I can’t seem to get rid of this jitter. Is there something inherent in the ADV8172A that makes this happen?
How do you configure the board either through script or software driver? Please crosscheck your configuration with sample script,which is available at ez.analog.com/.../adv7182-design-support-files I beleive, Normally in NTSC mode the ADV7182A outputs a 60 Hz field rate. Does your screen match this 60Hz or is it 50 Hz ? This may could also can cause jitter. And also camera could have a low refresh rate . Could you connect the camera directly to a television to see if you still see the jitter in direct connection, then turn off the advanced features in the TV such as 3D comb etc.
I started out using your DVP evaluation software via USB to load the registers. By the way, this was a great tool for learning what to do when configuring the chip. Once that was working I switched to direct I2C control from the ARM processor. That was tricky since the ADV Eval board didn't like being controlled from 2 sources. But by forcing a mux on the Eval board to ground I was able to do this. I am using the same register load sequence that your auto-detect, fast detect and free run scripts use.
I am using a Kiel evaluation board and I modified their demo program to do this experiment. The LCD (320 x 240) was already set up and all I am doing in the render routine is to dump R5:B6:G5 pixels into the LCD buffer and the ARM does the rest. I assume that it was setup for a 60 Hz refresh but I will check that.
The capture rate is either 16.67 mSec for NTSC or 20 mSec for PAL as seen on a scope for both cameras and video generators. Since I can't render as fast as the capture rate, I have 2 capture buffers for odd frames and 2 capture buffers for even frames. Every so often the render routine must wait for a capture to complete but I can do about 45 frames/sec searching the capture buffer for SAVs and doing the conversion from YCrCb to RGB and loading the LCD buffer.
I will try your suggestions regarding the filters.
Thanks for your continued support.