クロック回路定数の決め方


【基本のクロック発振回路】

 PICのどのファミリでも、クロック発振のハードウェアを設計する場合、
基本はクリスタル発振子を使った回路となります。
この場合の基本回路は下図のようになります。ここでクリスタルの周波数により
XTXTLHSモードと分かれますが、この間の主な違いは、下図に示す発振回路
内の内蔵インバーターのゲインの違いで、これにより異なる周波数範囲をカバー
できます。高い周波数ほどゲインが高くなり消費電流も増えます。



 この回路の場合、一般的には、仕様に合う最小値のゲインを持つ発振器オプション
(つまりXT,XTL,HSのいずれか)を使用します。これにより、DC電流を低くできます。
それぞれの発振モードのデータシート上の周波数範囲は、最高周波数の推奨値ですが、
異なるゲインモードを選択する場合は、十分な検証が必要です。
(電圧、温度、抵抗や容量や内蔵発振回路といったデバイスの変動を含めた検証が必要)
 この回路でのC1C2Rsの最適値を求める方法について説明した資料が、
マイクロチップのdsPICのリファレンスマニュアルの中にあります。
その資料が下記となります。


【クロック発振回路定数の決め方】

 これらのデバイスを選択するのに一番良い方法は、知識に基づいて行うよりも、多くの試行、
測定およびテストを実行することです。 《つまり実験でしか決められないということ》

 水晶は、通常並列共振周波数のみにより選択されますが、その他のパラメータ、温度もしくは
周波数許容値といった値も設計のためには重要です。
 dsPIC30F 内蔵発振回路は並列発振回路で、並列共振水晶を選択することが必要です。
負荷容量は通常22pF から33pF の範囲で規定されます。この範囲の負荷容量を付けると、
水晶は要求周波数に最も近い値で発振します。確実な発振を達成するためには、後述するように、
これらの値を変更する必要があるかもしれません。《他のPICファミリでも同様です》

 クロックモードは、初めは水晶発振子の求められる周波数に基づいて選択されます。
XT, XTL とHS モードの間の主な違いは、発振回路内の内蔵インバーターのゲインの違いで、
これにより異なる周波数範囲をカバーできます。一般的には、仕様に合う最小値のゲインを持つ
発振器オプションを使用します。これにより、DC 電流(IDD)を低くできます。

 それぞれの発振モードの周波数範囲は、周波数カットオフの推奨値ですが、異なるゲインモードを
選択する場合は、十分な検証が必要です。
(電圧、温度、抵抗や容量や内蔵発振回路といったデバイスの変動を含めた検証)

★ 最高温度、最低電圧で発振するように選択する

 C1 とC2(上図参照)は、初めは、水晶製造者やデバイスのデータシートに掲載された表で
示される負荷容量に基づいて選択されるべきです。
 水晶メーカや電源やその他の要素により、発振回路は、工場での性能評価過程で使用された
ものとは異なる回路になりますので、デバイスのデータシートで与えられる値は、出発点としてのみ
使用します。
 理想的には、回路が動作すべき最高温度と最低電圧で発振するように、容量を選択します。
高温と低VDD はともにループゲインに制約を与え、回路がこの極端な環境で動作する場合、
設計上は、その他の温度と電源の組合せで正しい動作をすることを保証できます。

 出力正弦波は最高ゲインの環境(最高VDD と最低温度)でもクリップされてはなりませんし、
正弦波出力振幅は、最低ゲインの環境(最低VDD と最高温度)でも、デバイスのデータシートに
記載されているクロックの論理入力仕様より十分大きくなければなりません。
  《方形波でなく正弦波であることに注意》

★C1よりC2を大きくする

 発振のスタートアップを改善する方法は、C1 より大きな値のC2 を使用することです。
これによりスタートアップ時に水晶により大きな位相差を発生させ、発振スタートアップを加速します。
 周波数応答加速用に水晶に負荷を与える以外にも、これらの容量は、ループゲインが増加した
場合に、それを下げる効果を持ちます。
 C2 は回路全体のゲインに影響を与えます。C2 を大きくすると、水晶がオーバードライブされている
場合は、ゲインを下げることができます。ただし、容量値が大きすぎると水晶に過電流が流れるため、
C1 とC2 は過度に大きくできません。残念ながら水晶で消費される電力を測定することは困難ですが、
推奨値からそれほど離れていなければ、これを心配する必要はありません。
 
 その他の外付けデバイスが満足できる状態に選択された後でも、水晶がオーバードライブされて
いる場合は、直列抵抗Rs を回路に追加します。
 これが必要かどうかは、OSC2 ピン(出力されるピンですが)をオシロスコープで見ることで決定できます。
OSC1 にプローブを接続するとピンは過負荷になり、性能に悪影響を与えます。スコープのプローブは、
それ自身が持つ容量を回路に追加することになりますので、これは設計された回路(すなわち、
回路がC2 が22pF で一番良く動作し、スコープのプローブが10pF であれば、33pF 容量が実際に
かけられていることになる)と異なることを考慮する必要があります。
 OSC2ピンの出力信号は、クリップされたり平坦になったりしてはいけません。このような状態で
水晶をオーバードライブすると、回路がより高次の高調波にジャンプするか、水晶にダメージを与える
ことになります。

★その他の調整

 OSC2 信号は、クロック入力ピンの入力最小値と最大値(5V VDD の場合4V から5V のピーク・ピーク
の値が通常好ましい)に振れるきれいな正弦波でなければなりません。
 これを設定するための簡易な方法としては、設計回路が動作する予定の最低温度と最大VDD で
回路をテストし、OSC2ピンの出力を観測することです。このときクロック出力の最大振幅が得られるはず
です。
 もし、VDD やVSS の近傍でクリッピングや正弦波の歪が発生したら、負荷容量が大きいために、
水晶を通して過電流が流れているかメーカが規定した負荷から遠く離れているせいかもしれません。

 水晶電流を調整するには、水晶インバーター出力ピンC2の代わりにトリマーポテンションメーターを
付加し、正弦波がきれいになるまで調整します。
 水晶は、低温・高VDD の極値では、最もドライブ電流が多くなります。トリマーポテンションメーターは、
オーバードライブを防ぐためにこれらの制限範囲内となるように調整する必要があります。

 ここで、標準値に近い直列抵抗Rs がトリマーポテンションメーターの代わりに使用できます。
調整後のRs が大きすぎる(おおむね20kΩ 以上)の場合は、出力から入力があまりにも隔絶されること
になり、クロックがノイズの影響を受けやすくなります。
 水晶がオーバードライブされるのを防ぐためにこの大きな値が必要な場合は、C2 を増加し補正するか、
発振動作モードを変えてみてください。
 Rs が10kΩ 位かもしくはそれ以下で、負荷容量がメーカ推奨値からそれほど遠くない値での組合せを
試してみてください。



  トップページへ