I've started working on a AVR based NBTV sync circuit which implements PLL in software. I have experience working with AVRs already so that's why I decided to try.
I did some prototyping and so far the results are promising. For now I'm just using an Arduino but if it works out, I can build it into a stand alone circuit.
PLL is implemented by waiting for a pulse from the disk encoder and the signal input. When a pulse is received, the timestamp is recorded and then they are compared.
The motor is driven by PWM (through the mosfet) using PID speed control which tries to minimize the time between the two pulses.
Right now I am only doing frame sync instead of line sync because I don't have good enough sync separation to get individual line pulses. In fact, even finding the missing
pulse for the frame sync is kinda dodgy and it tends to fall out of sync if there is too much white in the picture.
This is the sync separation circuit that I built. Does anyone have suggestions on how to get more reliable sync pulse separation?
You can probably figure out the idea of how it's supposed to work. The positive parts of the signal over 1.2V with bias (diode drop + transistor drop) will turn on the transistor pulling the output down.
The negative half of the signal (Sync pulses) turn the transistor off letting the voltage at the collector go up. It "kind of" works. But it is affected by luminosity way too much. So I have to adjust the bias put for every picture.
So it fails for most moving pictures.