目次事例集超高精度デジタル時計超高精度デジタル時計の作成


PLL発振器



今回の時計の心臓部である発振器です。

PLLとは Phase Locked Loop回路を使用して発振周波数を安定させる発振器です。
今回の場合、秋月電子通商の「10MHz標準周波数発生キット」を使用しています。基準発振器としては3.579545MHzの水晶発振器を使用し、これを1/63した56.8181746KHzを作り、さらに176倍して9.999998729MHzを作り出しています。(誤差は私の電卓の限界)
計算上では基準発振周波数の小数点以下の有効数字を6桁としていますので多少の誤差が出てしまいます。
10MHzに対して1.27Hzの誤差ですから精度は -1.27×10-7となり、7,874,400秒で1秒遅れる計算になります。年間4秒の遅れとなりますが、実際にはそれほどずれません。

このキットはプリント基板と必要な部品がセットになって売られています。全ての部品は手作業で取り付けなければなりません。
特に中心のIC(CX20032)は42ピンのSMT(表面実装)タイプですので、ハンダ付けに不慣れな人には苦しい作業かもしれません。ハンダ吸取線などを駆使して製作して下さい。





PLL発振器の原理


基準周波数発振器水晶発振器など安定度の高い発振器を使います。
電圧制御発振器 VCO(Voltage Controlled Oscillator)
制御用の電圧で発振周波数が変わる発振器です。
位相比較器 基準発振周波数と出力周波数を比較して差がある
場合にその差に見合う分の電圧を出力します。
出力周波数の方が高い場合にはVCOに周波数を
下げるような電圧が出力されます。
プログラマブル・カウンター 出力周波数を分割して比較周波数を作ります。
このカウント値を変えることにより出力周波数を変える
ことができます。




今回使用するPLL発振器では以下のような周波数関係になります。


また、「10MHz標準周波数発生キット」で使用しているCX20032では基準周波数発振器をさらにテレビの映像信号に含まれるカラー・バースト信号にPLL同期するようになっています。





プログラマブルカウンタの動作

16進カウンタのタイムチャート

上の図は16進カウンタのタイムチャート(時間とともに電圧の変化を表したもの)を示しています。16進カウンタは2進カウンタを4つ繋げています。1段目には入力周波数を入れますが、2段目には1段目の出力を入力します。3段目は2段目の出力を、4段目は3段目の出力を入れます。1段づつ2倍の時間(周波数としては1/2)になります。
カウントアップのタイミングは信号がハイレベルからローレベルに変化したときに行われます。(矢印の時)
今回の作成している発振器ではプログラマブルカウンタとして74HC393というICを使用しています。このICは16進のカウンタが1つのパッケージに2つ入っています。各々のカウンタにはリセット端子があり、ハイレベル(+5V付近、Hとも書く)でカウンタがリセット状態となります。
右の回路図はプログラマブルカウンタの部分を少し詳しく書いたものです。
IC4を例にして動作を説明します。
1段目の出力A、2段目の出力Bそれと4段目の出力Dにそれぞれダイオードのカソード側が接続されています。ダイオードのアノード側は全てIC4のリセット端子(R)に接続され、抵抗器(4.7kΩ)を通してVcc(+5V)に接続されています。A、BまたはDのいずれかがローレベル(0V付近)であるとリセット端子の電圧はそれに引っ張られてローレベルとなります。リセット端子はハイレベルでリセット動作をしますので、この状態ではリセットにはなりません。
すなわち、A、B、Dの全てがハイレベルとなった時だけ、リセット端子がハイレベルとなり、リセット動作が行われます。
タイムチャート上で見ますと、その条件となるのは11番目の入力信号がハイレベルからローレベルになった時となります。この時点でリセット動作が行われ、A、B、C、Dは全てローレベル状態となります。(振り出しに戻る)
希望周波数に分割するためにはA、B、C、Dのどこにダイオードをつなげば良いかを簡単に求めるためには次のような方法があります。
まず、Aを「1」、Bを「2」、Cを「4」、Dを「8」として希望の分割数から引ける分を引いていきます。例えば、13進カウンタを作りたいとした場合には13−=5、5− ここまでです。この計算の結果、8(D)、4(C)、1(A)にダイオードをつなげば良いことになります。
プログラマブルカウンタ(1)の場合を見ると、IC1の7進カウンタの場合は1(A)+2(B)+4(C)=7となり、IC2の9進カウンタの場合は1(A)+8(D)=9となります。
ダイオードによって無理矢理リセットをした場合、カウンタ自体から出力される信号のハイレベルの時間とローレベルの時間(デューティ)は均等ではありません。ハイレベルの方が短くなります。出力のデューティが問題となる場合には最終段に2進のカウンタを使えば良いのですが、さらに1/2に分割されてしまうので、分割数にはそれも考慮する必要があります。

CPUクロックの改造などではどこのICの何番ピンを基板から浮かすというようなのもがあります。
例えばIC1のAの端子を基板から浮かす(ダイオードを外すのと同じこと)とIC1は6進カウンタになります。改造前のフェーズコンパレータに入力される周波数は3579.545KHz÷63=56.818KHzで最終の出力周波数は10MHzですが、改造後は3579.545KHz÷54=66.288KHzで最終出力周波数は11.66MHz(+16.6%UP)となります。
実際のCPU回路の場合、使用しているIC、基準周波数、分割数などが上の例とは異なってきます。原理は同じようなものです。
ただ、やたらと分割数を変えて、周波数を変化させるとフェーズコンパレータが追従できなくなってしまったり、VCOが追従できなくなったりすることもあります。数十%なら影響はないと思いますが、2倍、3倍などにするとフェーズコンパレータからのVCO制御信号をチェックする必要もでてきます。