水晶発振器はLC発振器ということを確認しつつ、周波数変動の小さい理由について考察したいと思います。さらに、水晶発振器のシミュレーションも示します。
LC回路
インダクタとコンデンサを接続すると、お互いにエネルギーをやり取りして、ある固有周波数で振動します。
インダクタLに電流Iが流れている時のエネルギーELは、
です。
コンデンサCに電圧Vがかかっている時のエネルギーECは、
です。
これらのエネルギーの導き方はこちらの記事に示していますので、よろしければご覧ください。

インダクタとコンデンサを接続すると、エネルギー保存則から、合計のエネルギーをEallとして、
となります。
ほら。少し振動の兆しが見えてきています。
なぜかって?
式を変形してみましょう。
二乗同士を足し合わせて1になる関係といったら、何かを思い出しませんか?
そう、sinθとcosθの関係があります。
でも、θだと時間に関係しないので、わざとらしいですが、
と置いてみることにしましょう(さりげなくIをsin、Vをcosに置き換えましたが、逆にすると、符号が合わないはずです)。
すると、
となります。
sinとcosの位相差は90°なので、電流と電圧は位相が90°ずれています(リアクタンスなので、当然ですが・・・)。
また、sinとcosの係数は、1でないと、右辺が1にならないので、
となります。これから、
(1)
となります。
さて、三角関数が出てきたので、振動には近づいたのですが、肝心の周期が分かりません。
そこで、コンデンサに関する式を持ち出してきます。
周期に関する変数ωを引っ張り出すために、両辺をtで微分します。図1に示した電圧、電流の方向に注意して、
となります。これに式(1)を代入すれば、
となります。ここで ω=2πf なので、
です。
水晶発振器の周波数変動が小さい理由
水晶発振器は、周波数変動が小さいと言われます。
この特性が得られる理由は、僕の考えでは、次の通りだと思います。
何を言っているか分かりますか?書いた僕にとってもピンときません。でも、これ以外の表現方法も見当たりません。以下、この内容を説明したいと思います。
LC発振器の原理
再度、LC回路を考えます。
理想的には損失がありませんので、振動が永遠に続きます。
しかし、現実には抵抗分Rで熱になってしまう損失があります。また、発振出力を取り出すことでもエネルギーが系の外に出てしまい、振幅が減少します。
そこで、その抵抗分を打ち消すような負性抵抗-Rを入れてあげれば、振動が継続し、発振器になります。この並列共振回路は理論上、共振周波数において、両端間のインピーダンスが無限大になります。
ちなみに、私は、負性抵抗という考え方が好きではありません。でも説明に使うのは便利ですね。
直列共振回路でも同様です。理論上、共振周波数において、LC直列回路のインピーダンスは0になります。
ハートレーやコルピッツなど、一般的なLC発振器は、LC回路部分に電圧をかけ易い並列共振構成を使っています。
LC発振器の発振周波数は、並列共振回路でも直列共振回路でも、f=1/2π√(LC)です。
LC発振器の弱点
LC発振器の弱点は、寄生容量Cpによって、周波数が容易に変化してしまう点です。トランジスタやダイオードなどの能動素子を使うと、数pFの寄生容量が付くことは当たり前です。
例えば、図8のように寄生容量Cpが付いたとすると、発振器の周波数は、
になります。Cpは能動素子のばらつきによっても変化するので、設計することは困難です。
水晶振動子
いよいよ水晶振動子の出番です。
100kHzの水晶振動子の等価回路を図9に示します。やや複雑ですね。
まず、C1とL1で構成される直列共振器に注目します。
この共振周波数は、
です。
しかし、このままでは直列共振器であって、共振周波数ではインピーダンスが0となり、振動子に電圧をかけることは困難です。そこで、これと並列に容量C2の0.015μFを接続して、並列共振器の構成にします。イメージとしては、C1とL1の直接接続は直列共振周波数を越えるとインダクタンスの成分を示すので、これとC2のキャパシタンスで並列共振器を作るという要領です。R1の20Ωは、値の小さい寄生抵抗なので、無視することにします。
共振という現象は、直列共振であろうと並列共振であろうと、コンデンサに蓄えられるエネルギーとコイルに蓄えられるエネルギーが等しい状態です。解析を簡単にするため、C1、L1、C2(、R1)で構成するループにおいて、コンデンサをまとめます。C1とC2は直列なので、合成の容量をCとすると、
となります。ここで、C1に対してC2が十分に大きいことが肝心です。つまり、分母はほぼC2になり、分子のC2と約分されることで、合成の容量がほぼC1になります。
この結果、共振周波数は、
となって、元の共振周波数とほぼ等しい並列共振の出来上がりです。
実際に差を計算してみると、0.015μFという、50pFと比べると大容量を接続したのに、もとの共振周波数から、
しか変化していません。
この水晶振動子に発振器を構成するための周辺回路を配置しても、寄生容量は数pFのオーダであって、C2の0.015μFに比べて十分に小さい値ということもあり、発振周波数はほとんど変わりません。
あらかじめ示しておいた、「直列共振回路に並列容量を付ける構成によって並列共振させることで、回路の寄生容量による影響を受けにくくしたから」のイメージがつかめましたでしょうか?
水晶振動子のインピーダンスの特性
念のために、水晶振動子のインピーダンスの周波数特性を調べてみます。
振動子の等価回路を電圧源で周波数掃引すればいいだけです。でも、そのままだと、電圧源の正側の端子がDC的にGNDに通じる経路が無いので、バイアス点が計算できません。そこで、1GΩのR2をダミーとして加えています。
インピーダンスは入力の交流電圧を交流電流で割ればよいので、-V(IN)/I(V1)で計算できます。電流は流れ込む方向が正ですので、負号を付けました。
インピーダンスを、周波数軸で確かめると、
となります。初め直列共振になるので、インピーダンスがR1まで下がります。次に並列共振になるので、インピーダンスが上がります。これらの極小値と極大値が共振周波数と思いがちです。しかし、厳密には、位相が0°の周波数が共振周波数になります。
位相が0°となっている2つの周波数付近にカーソルを置いてみると、直列共振周波数は(たまたま?)極小値にほぼ等しく、100.664kHz付近になりました。このときのインピーダンスは20.5Ωで、ほぼR1と同じでした。
並列共振周波数は、極大値のやや直前の100.817kHz付近になりました。このときのインピーダンスは、512.6Ωでした。並列共振なので、もっと大きな値になることを期待していましたので、思ったより小さい値でした。
インピーダンスを複素平面上に示すと、虚軸上から出発し、時計回りに回ります。
まず、実軸を約20Ωで横切っている場所が直列共振点です。
次に、約533Ωで実軸を再度横切っている場所が並列共振点です。発振器を構成すれば、この周波数で発振します。それより周波数が高くなると再び容量性になるので、虚軸上に戻ってきます。
水晶発振器
最後に、水晶発振器の構成及びシミュレーションについて述べます。
水晶発振器を設計するには、水晶振動子のデータシートに、おすすめの回路図が載っているので、それに従うのが、一番簡単で安定した発振が得られる方法です。でも、各素子の意味を考察しておくのも悪いことではありません。
水晶振動子は、R1、C1、L1、C2の部分です。
これらの素子に、エネルギーを送り込むのがA1のアンプです。実際の発振器では、74HCU04のようなアンバッファタイプのインバータを使うことが推奨されています。アンバッファタイプは、切り換わり領域のゲインが小さいため、レベルの遷移がなだらかです。レベルの遷移がなだらかだと、入力が閾値に達しなくてもその付近で変化すれば、出力にもその影響が出ます。また、水晶発振器はLC発振器であり、振動子部分には方形波ではなく、正弦波を印加することが望ましいことからも、アンバッファタイプを選ぶべきでしょう。ただし、シミュレーションでは、74HCU04のモデルをセットするのが面倒なので、単純なインバータを使いました。
R2は、初期状態で、インバータの入力INを閾値レベルに近づけるためのフィードバック抵抗です。この抵抗がない場合、INが0Vだとすると、出力が5Vになり、フィードバックループではDCがカットされているので、永遠にそのままの状態が続きます。発振のきっかけは、雑音であって、それが増幅されて発振します。しかし、閾値まで2.5Vもあると、ちょっとやそっとの雑音では、閾値まで到達することができず、発振が永遠に始まりません。
試したことは、ありませんが、閾値の2.5V電圧から適当な抵抗を介してIN端子にバイアスしても、発振は始まると思います。
R3は、インバータの出力を水晶発振器に程よく伝えるための緩衝用の抵抗だと思います。いろいろと変化させて効果を確かめたかったのですが、spiceが収束しなくなってしまうため、細かい追及はあきらめました。
C3やC4の役割は、正直言って、僕にはよくわかりません。
シミュレーションする前は、C3とC4の容量と水晶振動子のL成分が共振して、発振周波数となるのだと思っていました。上述のように、この考え方は完全な間違いとは言えませんが、C2の0.015μFに比べれば、ずっと小さい値なので、発振周波数に与える影響はほとんどありません。
また、C3とC4は同じ値であり、中点がGNDに接続されているので、閾値を中心にして、水晶振動子の両端の電圧をシーソーのように動かす狙いがあるようにも見えます。そうすれば、インバータの出力レベルを反転して、理想的なフィードバックを入力に与えられそうです。
この回路をシミュレートした結果を示します。
周期はほぼ100usなので、100kHz近辺で発振しています。出力V(OUT)は、矩形波です。インバータがアンバッファタイプでないためかもしれません。
同図には、水晶振動子のコイルを流れる電流も示してみました。しかし、これは±3Aという、想像を絶する大電流値を示しています。水晶振動子は、ピエゾ効果で動いているので、物理的にはこの電流が流れているわけではないと思います。このあたりで妥協せざるをえないことが、水晶発振器のシミュレーションの限界なのかもしれません。
念のため、C3とC4を100倍の2200pFにしてシミュレーションしてみました。
出力波形は、若干変わりましたが、発振周期はほとんど変わっていません。見事な周波数安定性です。それに伴って、C3とC4の意味がますます解らなくなりました。多分、これらを取り外してしまっても、発振するのではないかと思いますが、spiceが収束しないので、シミュレーションはできません。必要であれば、実機で試すしかありません。
まとめ
水晶はLC発振器です。
今回、シミュレーションしてみて、水晶の安定度の理由が腑に落ちました。
よくもこんな素子を見つけて応用したものだと思います。
コメント