Ich versuche, Pixeldaten zu erfassen, die an ein kleines Schwarzweiß-CRT-Display gesendet werden. Die Signale, mit denen ich arbeiten muss, sind das Pixeldatensignal auf TTL-Pegel, HSYNC und VSYNC. Ich kenne die Pixeltaktfrequenz (~16 MHz), aber für meine Anwendung habe ich keinen Zugriff auf das Pixeltaktsignal.
Ich möchte das Pixelsignal zum richtigen Zeitpunkt abtasten (in der Mitte der Bitperiode, nicht während des Übergangs), also dachte ich, ich muss einen neuen 16-MHz-Takt mit einer gewissen Phasenbeziehung zu einer Flanke des HSYNC-Signals und erzeugen Verwenden Sie das, um das Pixelsignal abzutasten.
Ich weiß, wie man mit einer PLL ein Taktsignal multipliziert und eine bestimmte Phasenbeziehung zwischen Eingang und Ausgang aufrechterhält, aber wie halte ich eine ähnliche Beziehung zwischen einem neuen 16-MHz-Takt und einem Signal aufrecht, das nur gelegentlich eine Flanke hat (HSYNC)? ?
Oder gibt es eine bessere Möglichkeit, dieses Problem zu lösen?
Eine Möglichkeit, dies anzugehen, wäre, Ihre PLL (bezogen auf HSYNC) zu verwenden, um einen Haupttakt mit dem 3-fachen oder 4-fachen des Pixeltakts zu generieren, und dann einen Johnson-Zähler zu verwenden, um neue Pixeltakte mit 3 oder 4 verschiedenen Phasenwerten zu generieren. Sie können dann die Phase mit dem gewünschten Timing auswählen, entweder manuell mit einem Jumper oder elektronisch mit einem Multiplexer.
Es gibt Möglichkeiten, eine PLL direkt an eine intermittierende Referenz (dh das Videosignal selbst) zu koppeln, aber da Sie die nominelle Punktrate bereits kennen, sollte dies nicht notwendig sein. Sie könnten jedoch den Phasendetektor eines solchen Systems verwenden, um Ihnen zu helfen, automatisch die beste Phase des Johnson-Zählers für die Abtastung auszuwählen.
Das klingt nach einem einmaligen Projekt (meistens nur Trash-Schwarzweiß-CRT-Technologie). Selbst bei solch alter Technologie war es üblich, alle Zeitsteuerungen von einer Hauptuhr
abzuleiten . Wenn dies der Fall ist, ist HSYNC wahrscheinlich synchron mit Pixelkanten, was Ihr PLL-Design erheblich vereinfacht. Ein auf HSYNC ausgelöstes Oszilloskop beim Betrachten von TTL-Video würde Ihnen sagen, ob HSYNC mit der Pixeluhr synchron ist? Wenn dies der Fall ist, erhalten Sie auch eine Vorstellung von Jitter, mit dem Ihre PLL fertig werden muss. Und synchrones HSYNC erleichtert Ihr PLL-Design erheblich. Selbst in diesem einfachen Szenario müssen Sie sich damit abfinden, dass während des vertikalen Rücklaufs kein PLL-Eingang vorhanden ist.
Das ist (im Prinzip) ziemlich einfach. Sie versuchen nicht, Ihren 16-MHz-Takt einzurasten. Stattdessen bauen Sie einen Teiler, der die gleiche Frequenz wie Ihr Sync ausgegeben hat. Wenn Ihre horizontale Periode beispielsweise 63,5 us beträgt, sind dies 1.016 Zyklen von 16 MHz. Sie würden also die 16 MHz in eine durch 1016 geteilte Kette einspeisen und dann den Ausgang der Kette mit Hsync synchronisieren.
Das ist "im Prinzip" ziemlich einfach, aber der Teufel steckt im Detail. Sie müssen GENAU wissen, wie die Uhr mit der Synchronisation zusammenhängt, oder die neuen 16 MHz werden nicht an die Pixelpositionen gebunden. Sie müssen einen VCXO für einen Oszillator verwenden, oder der große Teilungsfaktor erzeugt Phasenjitter auf dem VCO, was das System unbrauchbar machen kann. Schließlich müssen Sie die Phasenverschiebung zwischen den Pixeln und den 16 MHz experimentell bestimmen, was Ihnen Probleme bereiten kann oder auch nicht.
Beachten Sie, dass dies mit einem 16-MHz-Oszillator mit fester Frequenz nicht möglich ist. Die Oszillatorfrequenz MUSS steuerbar sein und sollte vorzugsweise über einen sehr kleinen Bereich, wie 100 ppm, abstimmbar sein. Daher die Notwendigkeit für einen VCXO.
Chris Stratton
Chris Stratton
Markus Müller
Tony Stewart EE75
Tony Stewart EE75
Markus Müller
Markus Müller
Benutzer3528438
Chris Stratton