PICマイクロコントローラー用の水晶を選択できますか?


8

PIC16F690を使用していますが、内部発振器に特定の値(20、8、4 ...)があることを知っています。

外部に8MHzの水晶を入れたいのですが、8.8MHzまたは7.6MHzしか見つかりませんでした。

これらのいずれかをPICに配置できるかどうか、または正確に8MHzにする必要があるかどうかを知りたいのですが。また、それぞれのコンデンサをどのように選ぶべきですか?

回答:


10

PICクリスタルドライバーが指定されている周波数範囲内であれば、どのクリスタルも使用できます。

ほとんどのPICの水晶ドライバー(具体的にはPICを調べていませんが、それはあなたの仕事です)は、通常LP(低電力)、XT(水晶)、HS(高速)と呼ばれる3つの異なるドライブレベルに設定できます。遅いほうが消費する電力は少なくなりますが、サポートできる最大水晶周波数も低くなります。HSモードは、腕時計で使用されているように、敏感な低周波数32768 Hzクリスタルをオーバードライブして損傷する可能性があります。3つの水晶駆動レベルを組み合わせると、数十kHzから20 MHzの範囲をカバーします。これは、PICをとにかく駆動できる最速の速度です。

もう1つのポイントは、並列共振アプリケーション用に指定された水晶を使用することです。つまり、その周波数は、PICクリスタルドライバーがクリスタルを駆動する方法に対して指定されています。これらの水晶は負荷容量で指定されます。直列共振水晶は機能しますが、周波数はおそらく許容範囲内にありません。


どうもありがとう 。私の問題は、8MHzの場合、内部発振器が0.5usではなく0.47usの命令クロックを提供していたことでした。だから私は外部発振器がより正確になると思います。本当?別のこととして、私はそのfのヒューズを設定する方法を理解できませんでしたか?
馬鹿げた

4
@カーン:はい、外部水晶振動子は内部発振器よりも正確です。安価な水晶でも50 ppmで十分であり、20 ppmは通常、それほど多くのお金で利用できません。構成設定については、これらはすべてデータシートに詳しく記載されています。8 MHzクリスタルの場合、HSモードを使用します。
Olin Lathrop 2013年

8

シリコン、プログラムされたヒューズ、およびアプリケーションコードのクロックレート仕様を超えていなければ、好きなクリスタルを使用できます。データシートには、使用するコンデンサが説明されています。


3
クロックレートを変更すると、ボーレートやインターバルタイマーなどの計算も変更されることに注意してください。当たり前のようですが、忘れがちです。
Scott Winder 2013年

@Scott:ボーレート除数などの無責任なコードをハードコーディングした場合のみ。適切なコーディングで、発振器周波数である1つの数値を変更すると、ビルド時にすべてが自動的にその周波数から導出されます。もちろん、不可能または範囲外の場合のエラーチェックが行われます。ただし、1つの番号を変更することを忘れないでください。
Olin Lathrop 2013年

1
@OlinLathrop:頻度にわずかな変化がある場合は同意します。ただし、周波数を大幅に変更する場合は、中間周波数を推奨範囲内に保つために、ボーレートジェネレーターのプリスカラーおよび/またはポストスカラーの変更が必要になる場合があります。タイマー側では、クロック周波数の切り替えによってオーバーフローが発生する可能性があり、周波数が異なるとクロックの分解能も異なるため、タイマーカウントの変更(周波数マクロを使用)はソリューションの一部にすぎません。タイマークロックも、必要な精度と長さを達成するために変更する必要がある場合があります。
Scott Winder 2013年

1
@スコット:しかし、それはビルド時に計算されるか、少なくともチェックされるすべてのものです。プリスケーラーのようなものをハードコーディングし(通常は必要ありません)、新しい命令の頻度で目的の操作がサポートされていない場合、ビルド時のコードによってエラーがスローされ、警告が表示されます。処理できる場合は、黙って処理します。周波数の変更が静かに問題を引き起こす理由はありません。それは単に悪いコーディングです。
Olin Lathrop 2013年

@OlinLathrop:私は反対しません。良いコーディングの場合でも、単一の数値を変更するのは必ずしも簡単ではないことを指摘しておきます。いずれにせよ、周波数を変更するときに注意する必要があります。
Scott Winder 2013年

0

データシートで述べたように、最大​​20Mhzの発振器を使用できます。コンデンサについては、データシートはそれらの種類の使用をあなたに言うことができますが、コンデンサの量についてはあなたの経験を使うべきです。


1
「経験」は常に良いことですが、必要な負荷容量は水晶によって異なり、水晶のデータシートで指定する必要があります。これは、並列共振周波数と関係があります。また、uCピンとトレースからの浮遊容量も考慮する必要があります。
Rev1.0 2013年

@ Rev1.0素晴らしい、ありがとう!私はあなたに投票しました。たとえば、このデータシートを見た:html.alldatasheet.com/html-pdf/236074/CRYSTEKCRYSTAL/CYSDXX/…その右側に表(標準部品番号)が表示されています。コンデンサを選ぶためにそれを使うべきですか?たとえば、16MHzの場合、20PFコンデンサを使用する必要がありますか?
Roh

1
いいえ、与えられた負荷容量は必要な合計容量であり、両方のコンデンサの値ではありません。CX = 2 *(CL-Cstray)を計算します。CXは必要なコンデンサ、CL = 20pf、Cstrayは設計に依存します(約2-5pf)。
Rev1.0 2013年

1
Cstrayは、マイクロコントローラーピン(データシート)の容量+ボード上のトレースの寄生容量です(トレースの長さ、幅、層を知ることで概算できます)。これが趣味のプロジェクトだけの場合は、5pfを想定して、おそらく大丈夫です。
Rev1.0 2013年

1
これを読んで理解しください。「CinとCoutが指定されていない場合、5 pFの推定値が適切な出発点です。」
Rev1.0 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.