0 Replies Latest reply on May 10, 2020 11:05 PM by MoTa_728816

    Community Translation - Using IMO for UART Communication in PSoC® 3 and PSoC 5LP - KBA203603

    MoTa_728816

      Hi,

       

      I'd like to translate KBA203603 into Japanese.

       

      moto

       

      Original KBA: KBA203603

      Using IMO for UART Communication in PSoC® 3 and PSoC 5LP - KBA203603

       

      Translated by: MoTa_728816

      ==============================

      タイトル: PSoC® 3 と PSoC 5LP で UART 通信に IMO を使用する - MBA203603

       

      ヴァージョン: **

       

      質問:

      PSoC® 3/ PSoC 5LP で UART 通信に内蔵メイン発振器 (IMO) から生成したクロックを使用することは可能ですか?

       

      回答:

      はい、もし IMO の精度が±2% 以内であれば IMO から生成したクロックを UART  に使用することが可能です。

      UART は非同期通信プロトコルです。このプロトコルは送信側と受信側のクロックスピードが一致していることに依存しています。もし送信側と受信側のクロックが大きくずれている場合、通信異常が発生します。PSoC 3 と PSoC 5LP は受信に 8倍クロックのステートマシンを使用しています。受信はボーレートに対して 8回の入力サンプルを行っているという事です。UART のデータフレームはスタートビット 1、データビット 5 ~ 9、ストップビット 1 か 2 という構成になっています。受信はスタートビットの立下りエッジに同期します;結果的にストップビットでタイミングの誤差は最大になります。

       

      受信側は入力データをビット周期の中央でサンプリングするため、ストップビットを正常に受信できる最大のタイミング誤差は 1/2 ビットです。ストップビットはスタートビットから 76 (9.5 x 8) UART クロック後となります。1/2 ビットは 8倍クロックでは 4 クロックに相当します。 同期のために最大 1 クロックサイクルの誤差が発生しますので、76 UART クロックサイクルに対して許容される誤差は 3 クロックサイクルとなります。これで受信と送信間の許容クロック誤差は約4% (3/76) となります。そのため UART が正常に機能するためには送受信間のクロックの最大誤差が±4% に収まる必要があります。

       

      UART のボーレートについて送信側と受信側に同程度の誤差を許容すると考えた場合、UART で正常な通信を行うために PSoC の UART クロックに許容される誤差は ±2% となります。よって IMO から生成されたクロックを UART 通信に使用する場合、IMO の精度は ±2% 以内である必要があります。

       

      以下の 3 つの条件において IMO はこの精度要求を満たします。

      IMO = 3 MHz, 精度 = ±1%

      IMO = 6 MHz, 精度 = ±2%

      IMO = 24 MHz で USB クロックが IMO から生成されいてる場合、精度 = ±0.25%

      これ以外のすべての設定において IMO の誤差は ± 2% を超えてしまいます。

       

      そのため、IMO から生成されたクロックが UART に使用できるのは、これらの 3の条件のどれかに限られます。

      IMO がこれらの条件で動作していない場合、UART のクロックを生成するために高精度の外部クロックか水晶発振器を使用する必要があります。

      ==============================

       

      11-May-2020

      moto