外部発振子なしで、UART通信は可能ですか?:Q&Aで学ぶマイコン講座(7)(3/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。7回目は、初心者の方からよく質問される「外部発振子なしで、UART通信は可能ですか?」についてです。
分周回路
一般的に、分周回路はデジタル回路(論理回路)でクロックを分周しますので、分周前と分周後での周波数の誤差率は変りません。同じ割合になります。分周回路の構成は基本的なカウンタです。クロックを2つ数えるか、3つ数えるか、…… n回数えるかで、その数になった時に信号を出せば、2分周器、3分周器、…… n分周器になります。
クロックを、デジタルで数えるだけですと、周波数の誤差率は変りません。オリジナルの周波数誤差率がそのまま伝搬されます。
ただし、マイコンによって分周器の方式は異なりますので、念のためマイコンメーカーに確認した方が良いでしょう。
PLL(位相同期回路)
PLLを使用すると、クロックを2倍、3倍…n倍と逓倍することができます。逓倍したクロックの周波数の誤差は、基本的には変りませんが、逓倍したクロック波形にジッタ(Jitter)という現象が発生します。ジッタとは、クロック波形の信号の変化点(立上がり/立下り)が一時的に変化する現象です。
図4にSTM32F103のPLLの仕様とジッタのイメージ図を示します。
赤枠で囲った値がジッタです。単位がpsなので非常に小さい値です。さらに、部分的にクロック周期が変化しますが、トータルでの周期は変化しないので、周波数に影響はありません。
ただし、これはSTM32F103の場合です。マイコンによってPLLの方式が違うため、特性も異なります。各マイコンのデータシートなどでPLLの特性を確認しましょう。もし、周波数誤差が発生するようであれば、UARTの通信誤差に考慮する必要があります。
まとめ
UART通信に最も大きく影響するのは、マイコンの内部発振回路の周波数誤差です。各マイコンで確認が必要ですが、分周器やPLLは一般的に、周波数誤差を発生させる要因にはなりません。
したがって、マイコンの内部発振回路の周波数誤差と通信相手の周波数誤差を考慮して、通信可能かどうか判断します。
その他の通信
UART以外の通信機能について考えてみましょう。通常、クロック同期式と呼ばれる通信方式では、データに同期したクロックが出力されますので、そのクロックに同期してデータを取り込めば、周波数誤差を考慮する必要はありません。
例えばSPI(Serial Peripheral Interface)やI2C(Inter-Integrated Circuit)はクロック同期式なので、マイコンの内部クロックの誤差の影響はありません。
クロック同期式でない通信方式の1つに、USB(Universal Serial Bus)があります。USBの規格(フルスピード、ハイスピードなど)により、周波数誤差は規定されています。場合によっては、誤差率が±0.25%以内という規格もありますので、基本的にはマイコンの内蔵発振回路は使えず、外付けに発振子が必要になります。
ただし、最近のマイコンでは、外部水晶発振子を付けなくてもUSB通信が可能なSTのSTM32L0x2のような製品もありますので、各社のマイコンの仕様を確認してみましょう。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 水晶やセラミック発振子を使った発振回路の設計方法は?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。2回目は、実際の開発者の方からよく質問される「水晶やセラミック発振子を使った発振回路の設計方法」についてです。 - 未使用GPIO(汎用I/O)の処理はどうすれば良いの?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。5回目は、初心者の方からよく質問される「未使用GPIO(汎用I/O)の処理はどうすれば良いの?」についてです。