PLL回路
源発振とVCOの周波数を比較して、VCO側を特定の周波数に固定する回路です。
まず、源発振とVCOをぞれぞれ任意の値で分周器にかけます。この分周比率でVCOの周波数が決定します。
VCO周波数 = 源発振周波数 x VCO分周比 / 源発振分周比
分周された2つのクロックの立ち上がり(位相)を比較し、AよりBが早ければBの周波数を上げて(充電)、AよりBが早ければ周波数を下げる(放電)ための信号を作ります。
この信号がループフィルタ==VCO制御電圧を充放電することで、2つの周波数がだんだん近づいて行きます。
位相がA=Bに重なったとき、充放電は停止して2つの周波数が同じになり、VCOの周波数が固定されます。これをロックしたといいます。
PLLフィルター部の説明
普通のPLLフィルター回路です。R21,R22,C21,C22で応答速度を調整します。
この部分、なにも考えず他の回路から適当にパクりました。計算すらやってません。
本来はここの調整が重要だそうですので、そこは詳しい方にお任せしましょう。
注意点としては、C21にタンタルコンデンサを使用することくらいです。
電解コンデンサは高周波特性が悪く、自己放電も大きいのでここには使いたくない。
「ピシピシとスパイク上のノイズを出す」とも聞いたことがあります。
ダイオードのD21は、電源OFF時にVREF電圧を放電するために付けてあります。
VREF > VCCOとなっても問題ないのなら必要ないが、データシートにはVREF/VCCOの規定はみあたらりませんでした。
SpartanII内部でリセット電圧を検出しているなら、PLL_OUTを自分で放電するようにしてD21を排除可能かもしれません。
VREF電圧は0.6V〜1.5V辺りで可変しますが、これを0V/3.3VのLVTTLポートで直接ドライブしているため、時間単位の充放電エネルギー量は、H/L側で何倍も違ってきます。
フェーズディテクタからフィードバックするには問題あって、フィルターの特性も充放電で何倍も違ってしまいますし、短いパルスで大きく充電されてしまうと、放電が進まず、周波数をロックできなくなります。
本来、直流をカットしたうえで、1.65Vにバイアスすべきなのでしょうが、主義的にここは部品をケチっています。
フィルターの方は大きめにすればよいし、充放電エネルギー比の問題はSpartanII側で
なんとかさせましょう。
VREFの入力電流は、NAX20uA/pinなので、インピーダンスは大きめにとることが可能です。
フィルター回路のGNDレベルはノイズの少ないところに落としてください。