【回路設計】 クロックジェネレータ(NE555P編)
はじめに
今回はタイマーICとして有名なNE555Pを用いてクロックジェネレータを設計します。実際に回路を試作すると、異常発信する現象に遭遇しました。その現象についても詳しく紹介します。
設計した回路
NE555Pのデータシートにある「A-stable Operation」を参考に設計しました。
データシート
https://www.ti.com/lit/ds/symlink/ne555.pdf
クロックの仕様は、R1とR2、およびC1によって決まります。
今回はLED等で目で観測しやすいように1秒ほどの周期のクロックを生成することにします。手持ちの在庫のコンデンサで容量が大きいものを選び、47uFとしました。R1とR2の選び方でデューティー比が決まります。デューティー比は特には拘りはないので、簡単のためR1とR2は同じ抵抗値にします。周期は、データシートによると 0.693 * (R1 + 2 * R2) * Cで計算できます。R1とR2を10KΩを選ぶと、約1秒の周期になります。
% ruby -e 'p 0.693 * (10000 + 2 * 10000) * 47 * 0.000001'
0.9771299999999999
ちなみに、R1 << R2となるような値を選ぶとデューティー比は50%に近づくのですが、R1が小さ過ぎると、試作にてクロックが生成されない現象が発生しました。原因は解明していません。
クロック生成の原理
クロック生成の原理としては、C1の充電と放電の繰り返しでできています。充電は、R1とR2を通して行われます。C1が充電され、VCCの2/3(THRESレベル)の電圧に達すると、オープンコレクターであるDISCH端子が電流を吸い込む(sink)ことで、C1の放電が行われます。C1がVCCの1/3(TRIGレベル)の電圧を下回るとDISCH端子からの吸い込みが停止し、再び充電の動作に切り替わります。THRESレベルに達した時とTRIGレベル下回った時に、RSフリップの出力が反転するようになっています。RSフリップフロップの出力(+インバータ)がOUT端子から出ており、これでHとLを周期的に繰り返すクロックが生成されます。
※NE555Pデータシート「4 Simplified Schematic」より引用
試作
大雑把ですが約1秒周期のクロックが生成されることを確認できました。電源に5VのACアダプタを使用したのですが、+0.3Vほどの誤差ががあるようで、5.3Vの電圧が出ている関係で、クロックのHは設計の5Vを超えています。
異常発信
回路図のC2(パスコン)を接続せずに動作させると、クロックの立ち上がる直前に毎回異常発信する現象が現れました。
拡大すると、このようになっていました。
発信する瞬間、電源ラインの状態を見ると、このようになっていました。安定しているはずの電源に激しいノイズが乗っていました。(パスコンを接続するとこの現象は発生しません)
C2(パスコン)をNE555Pの付近につけると、異常発信は無くなりました。C2の容量を変えながら実験した所、データシートの回路例と同じ0.01uFで効果があり、0.1uFでこの波形になりました。多少のオーバーシュートと振動が残っています。これ以上容量を増やしても改善はあまり見られませんでした。
パスコンについて
今回の異常発信の原因について、該当する解説を見つけました。「基本電子部品大事典」の188ページです。今回のようなケースでは、やはり0.1uF程度の積層セラミックコンデンサの使用で妥当なようです。
巷にある回路図を見ていると、並列にパスコンを繋げているケースがありますが、これは電流容量が大きい回路で使うようです。セラミックコンデンサに加えて、並列で電解コンデンサを混ぜる場合についても解説があります。高周波電流の出し入れはセラミックコンデンサに、低周波電流の出し入れは電解コンデンサに任せるのが適切だそうです。
おわりに
実際に回路を制作した感想としては、少ない部品点数で簡単にクロックを生成できるのは利点ではあるものの、クロックの周期やデューティ比を変更するには、物理的に抵抗とコンデンサを変更する必要があり、その点が面倒に感じました。クロックの仕様を色々変えながら実験する時は、マイコンやFPGAから、プログラマブルにクロックを生成して利用する方が、便利かもしれません。