2019年03月24日 | 公開。 |
リング発振器(リングオシレータ)の動作原理を理解したところで、74HC04を使った3段リング発振器を、ユニバーサル基板を使って作ってみます。
今回製作したリング発振器の回路図を、図9に示します。
74HC04に内蔵されている6個のインバータの内、3個のインバータを環状に接続し、リング発振器を構成しています。
余った3個のインバータについては、入力端子にを5VまたはGNDに接続して入力端子の処理をしています。
GNDと、リング発振器の各インバータの出力(OSC1~OSC3)は、CN2に取り出しており、ここにロジックアナライザを接続して信号を観察します。
CN1は電源を接続する端子で、ここからDC5Vの電源を取ります。
図9のリング発振器をユニバーサル基板上に組み立ててできた基板の写真を、写真1(表面)および写真2(裏面)に示します。
製作した3段リング発振器が発振動作する事をオシロスコープで確認してみます。
写真3に示す様に、CN1に5Vの電源を接続し、OSC1に出力される発振器の出力信号をオシロスコープで観測します。
観測した波形を図10に示します。
この観測結果から、リング発振器が43.8MHzで発振している事が分かります。この発振周波数から、インバータの伝搬遅延時間を見積もってみましょう。
インバータの数Nは3で、発振周波数f3は43.8MHzですから、これらを式(2)に代入して、インバータ1段の伝搬遅延時間tpdを見積もると、3.81nsになります。
ところで、図10の波形観測に使ったGW INSTEK社製のGDS-1062というオシロスコープは、2CH、60MHz、250Msps(1CH時)というスペックです。
参考:オシロスコープの性能指標については、Arduino Dueを使ったオシロスコープの試作(5)という記事にまとめていますので、そちらもご覧ください。
サンプリング周波数が250Mspsしかないので、時間分解能は4nsと、インバータの伝搬遅延時間とほとんど同じになっています。それでも、なめらかな波形と、それらしい測定結果が出ているのは、オシロスコープの等価時間サンプリング機能により、見かけ上の時間分解能が向上しているためです。
今回は繰り返し波形を観測しているので、等価時間サンプリングができましたが、単発波形なら本当に時間分解能が4nsになります。また、後でする2チャネル同時測定では、サンプリング周波数が半分の125Mspsになってしまうので、等価サンプリングしなければ、時間分解能が8nsになります。
また、オシロスコープの帯域が60MHzしかないので、43.8MHzの波形を観測するには不十分です。図10ではなまって正弦波に近い波形が観測されていますが、これはオシロスコープの帯域が足りずに、発振波形の高調波がうまく観測できていないからだと思います。実際は、もっと角ばった波形なのだと推察されます。発振周波数はそれなりの精度で測定できていると思いますが、波形はあまりあてになりません。
余談:GDS-1062を8年か9年くらい前に買った時は、このスペックで7万円くらいしたと思うのですが、今なら、もっと低価格でもっと高性能なオシロスコープが買えます。
次に、OSC1とOSC2の2つの波形を、オシロスコープで同時観測してみます。残念ながら、オシロスコープがチャネルを2つしか持っていないので、OSC3も同時観測する事はできません。OSC1とOSC2の同時観測の様子を写真4に示します。
観測した波形を図11に示します。
黄色い線のCH1の波形がOSC1出力で、水色の線のCH2の波形がOSC2出力です。画面の下には、発振周波数が42.1631MHzと表示されています。画面右側のX1X2の欄の「Δ:4.000ns」という表示は、OSC1が最大値を取ってから、OSC2が最低値を取るまでの時間を、カーソル機能により測定した結果です。
OSC1・OSC2の2つの出力共に約42.2MHzで発振している様子が分かります。OSC1だけ観測した時の発振周波数の43.8MHzと比べると、3.7%ほど発振周波数が下がっています。これは単なる測定誤差ではなく、物理的に意味がある現象だと考えています。
というのは、伝搬遅延時間というのは、負荷容量が増えるほど延びる性質があるからです。10倍モードのオシロスコープのプローブでも、多分10pF以上の静電容量を持っているでしょうから、十分伝搬遅延時間に影響を与えるはずです。
OSC2にもプローブを接続すると、そのプローブの静電容量が、OSC2を出力しているインバータの伝搬遅延時間を延ばすはずです。その結果、発振周波数は低下するはずです。
とはいえ、リング発振器の発振周波数はそれほど安定したものではありません。測定中にも0.数MHzオーダーで発振周波数が変化するのが観察されましたから、2チャネル同時観測した時の3.7%の周波数の低下が有意な数字かどうかは、もう少し詳しく検討する必要がありそうです。
図11をみると、OSC1出力の振幅が、OSC2出力の振幅より大きいのが気になります。OSC1出力は-1.0Vから5.6Vの範囲で発振していますから、オーバーシュートやアンダーシュートがあるようです。(これは、オシロの帯域が足りていない事に起因する見かけ上のオーバーシュート・アンダーシュートの可能性もあります) それに、図10よりも、OSC1出力の振幅が大きくなっているのも気になります。
ただ、この周波数になると、オシロのプローブをつなぐことによりインピーダンスの不整合が起こり、信号の反射がプローブが返ってきたり、並走しているOSC1とOSC2の配線間でクロストークが発生したり、そもそもオシロスコープの帯域が足りていなかったりと、色々な事が起きますから、こういう現象が起こっても不思議ではありませんし、その原因を突き止めるのも困難です。
はなしは変わりますが、発振周波数(42.2MHz)からインバータ1段の伝搬遅延時間を見積もると、3.95nsになります。
一方で、図11の波形では、OSC1出力とOSC2出力に位相差が観察できますから、そこから伝搬遅延時間を直接的に測定する事もできます。
OSC1出力がインバータを通ってOSC2出力になるので、OSC1出力の立ち上がりからOSC2出力の立ち下がりまでの時間を測定すれば、理論的にはインバータの伝搬遅延時間を直接測定できるのですが、オシロスコープの帯域が不足しているため波形がなまっており、どのタイミングで波形が立ち上がった(あるいは立ち下がった)というのは無理です。
仕方がないので、便宜的に、OSC1出力が最大値を取ってから、OSC2出力が最小値を取るまでの時間を、インバータの伝搬遅延時間の近似値として測定する事にしました。その測定結果は、図11のカーソル測定から読み取れるように、4.0nsでした。
ちょっといい加減な測定法ですが、発振周波数から推定した伝搬遅延時間とほぼ一致します。
次のページからは、高速ロジックアナライザで、等価時間サンプリングを使わずにリング発振器の波形を観測する方法について説明します。