質問: picのクロック周波数の決定は? 手元に、pic18f2550を使って周波数をカウントする装置があります。 これの基準クロックに16mhzのクリスタルオシレータが使われているのですが、これの安定性や精度を上げるのはどうすればよいでしょうか。 今使っているのは、16.000と書いてありますが、これを16.000000などというように、精度を上げることは意味がありますでしょうか。 また、そもそもの周波数がpicは48mhzまで対応しているので、水晶の発振周波数を40mhzなどにすることも意味がありますでしょうか? 設計の考え方について、教えていただけませんでしょうか。
回答: 部品仕様としては、周波数偏差(ずれ、frequency tolerance)が小さい物を選ぶことです。 16.000でも16.00000でも、仕様としてのずれが大きければ同じです。 通常この仕様の単位はppmで、一般的な電子機器に組み込む用途であれば、 発振器(発振回路込みの部品)で3~20ppm程度、 振動子(水晶のみがパッケージされた物)では10~100ppm程度をよく見ます。 ppmは100万分の1を示し、16mhzの20ppmでは、16×20÷1000000= 0.00032mhz= 320hzまでのずれが 部品としての仕様となります。 周波数が安定しない(ずれる)外的要因の一つとしては温度があります。 水晶にも温度特性があり、低温~常温~高温では数ppm~数十ppmのずれが発生する可能性があります。 温度による影響は次に述べるコンデンサなどの構成部品による影響もあります。 この対策として出来ることは、温度特性の良い(温度による影響の少ない物)を選ぶか、 保証温度範囲の広い部品を選ぶことです。 また、水晶振動子では特に回路の構成部品の影響を強く受けます。 水晶の回路では一般的に数pf~数十pfのセラミックコンデンサをクロック回路に入れます。 このコンデンサの容量が周波数にてきめんに影響し、平気で100ppmくらい変わります。 通常はic側に水晶容量が記載されいてその通りにすれば良いのですが、 基板やパターン、icピンの浮遊容量の影響があるため、 ずれを小さくするためには細かい調整が必要です。 また、コンデンサ以外にemi対策としてダンピング抵抗やインダクタを入れる場合もあります。 こちらは周波数というよりも波形に影響しますが、 rc,lcフィルタによって変な動きになる事もあります。