水晶周波数をどのように選択すればよいですか?


8

UART用の水晶の選択に関するこのような質問を見たことがあります。また、RTCの32.768 kHzに関するこのような質問を見ました。しかし、どうすれば自分のアプリケーションに適した水晶を決定できますか。

この時点では、どのUARTボーを使用するのかわかりませんが、標準のUARTボーになります。ミリ秒単位の半正確な時間を取得できると便利ですが、必須ではありません。直感的に、私のマイクロが使用できる最速の水晶を使用すると、最も柔軟性が得られると思いますが、何か足りないものはありますか?人々が使用する「汎用」周波数はありますか?


細心の注意を払って... :)
vicatcu 2010

回答:


11

正直なところ、私はさまざまな周波数とそれらを使用する理由を説明するのに何時間も費やすことができましたが、誰かがすでに持っています!

http://en.wikipedia.org/wiki/Crystal_oscillator_frequencies

この表にはUART列があり、どのUART周波数が適切に分割されるかを示します。

また、周波数が特定の通信システムの標準水晶である場合も通知します。


誰もが使っている素晴らしい水晶周波数があればいいのではないでしょうか。
Kellenjb 2010

1
世界中の建物の建物に同じコンセントがあるといいのではないでしょうか。コンセントを混ぜない限り、人生は続くでしょう。
Kortuk、2011年

2

直感的に、私は自分のアプリケーションのために働く最も遅い結晶を使用します。クロックドリフトが少なくなり、回路トレースは一般的に低い周波数でより適切に動作します。

余談ですが、数ミリ秒ごとに実行したい場合は、次のように実行できます。

Fosc = 25MHz. 
T=1/Fosc = 40ns; 
1ms/40ns = 25000 cycles/ms;
0xFFFF-25000=0x9E57;

on overflow TMR1:  //assuming TMR1 is 16 bit and counts every clock cycle
doEveryMillisecond;
incrementMillisecondTimer;
TMR1 = 0x9E57;

どのマイクロを使用しているかはわかりませんが、MPLABにはイベントの所要時間を測定するユーティリティがあるため、TMR1のリセット値を調整して、オーバーヘッドや不正確なクロックに対処できます。クリスタルは、これが本番環境では実行できないほど十分に異なる場合があります...よくわかりません。


これの拡張として、ウィジェットで使用するXTALがわからない場合は、まったく選択しないでください。PCBスポットを空けたままにして、安定性(たとえば、内部RC発振器のキャリブレーションが目的のボーレートで十分でない)または速度が必要になるまで待ちます。壊れていないものを修正しないでください!
tyblu 2010

同意-MCUに内部発振器がある場合は、まずそれを使用してみてください。設定ワード/ヒューズを正しく設定してください。また、PCBでソケットを使用することを検討する必要があります。そうすることで、はんだ付け/はんだ除去結晶を処理する必要がなくなります...ボーナスは、それらを簡単に交換できることです。
Isaac、

1
@isaac、水晶はボード上のEMIの最大の発生源の1つです。コネクタを経由せず、グランドプレーンにできるだけ近く、その周りにシールドトレースを配置する必要があります。
Kortuk、

@isaac、また、もしあなたが10ppmのク​​ロックドリフトを持っているなら、それはあなたが持っているどんなクリスタルスピードでも問題ではないでしょう。高速のクロックにはより大きな分周が必要であるため、それらはすべて同じ潜在的エラーに分周されます。遅い水晶は、他のものの分解能が悪いことを意味します。
Kortuk

@isaac 40MHzのクリスタルで問題が発生したことはありません。できるだけマイクロに近づけます。@kortukの応答は、時計のずれが問題だとは思わなかったのと同じ理由です。クロック速度を上げると、正確に1 msに近づくことができると考えました。
Kellenjb 2010
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.