高速オンチップオシレータ発振周波数の温度・電圧依存性がUARTに与える影響について

R8C/2Hシリーズのマイコンを使用しております。

高速オンチップオシレータの発振周波数は22.電気特性に記述があり、Vcc=2.7V~5.5V、Topr=-20℃~85℃で

標準8MHzに対して最小値7.68MHz、最大値8.32MHzですので、8MHz±4%のバラツキが発生すると理解しています。

このクロックがUARTでも使われますので、同じマイコンを搭載した機器同士の通信ではクロック周波数の差が最大で

0.64MHzになり、これで計算すると受信側でパリティビットを正確に取得できないと思われます。

通信仕様は下記の通りですが、私の理解に何か間違えがあるのでしょうか?

ご存知の方、ご教示の程 宜しくお願い致します。

通信仕様:

通信速度 9600bps

データ長 8ビット

スタートビット 1ビット

ストップビット 1ビット

パリティ 有り(EVEN)

  • チョコです。
    UARTでの調歩同期通信では,通常は送信側と受信側のボーレート誤差が4%程度までです。
    これを送信側と受信側で分けて,±2%程度が通常の判断基準となります。
    つまり,8MHz±4%のバラツキなら,最悪の場合には通信ができない可能性があります。
    (バラツキが大きくなることで,まずフレーミングエラーが発生し,次にパリティエラーとなります。)

    確実に通信を行うには,何らかのボーレート補正が必要かと思います。
  • 高速オンチップオシレータ制御レジスタ(FRA?)関係に に周波数調整用データが格納されているので、きちんと設定すれば、実際にはそこまでばらつかないのではないかと思うのですが・・
  • チョコさま、ビーコン菅原さま、返信ありがとうございます。

    ハードウェアマニュアルの表22.9に最大値と最小値が掲載されています。

    SFRの説明も読みましたが、この表よりもバラツキを少なくする方法として、発振周波数を見ながらHRA1を調整する必要があるのでしょうか?

  • Qb12さん
    その考え方で良いと思います。
    ただし、旧ルネサス系の製品は、指定した値以外での特性(電圧・温度偏差)は保証しないというスタンスなので
    FRA4,6以外の値に微調整した場合、その後に電圧が変ったり、温度が変ったりした場合の誤差範囲はデータシートでは規定されなくなります。

  • Kirinさん、返信ありがとうございます。
    メーカで周波数を調整しているとの事と保証値で±4%を記載していることから、実力値はもっと精度がいいと考えられますので、±2%をリミットとしてこれを外れたものは調整する様にしようと思います。
    この件はこれで終結とさせて頂きます。
    皆さん、色々ご教示頂き、ありがとうございました。
  • 送受信間で最大8%のクロック誤差があるとして、調歩同期で 4bit なら通信できると思うので、

    データ長 7ビット
    スタートビット 1ビット
    ストップビット 1ビット
    パリティ なし

    で通信を行い、7bit あるデータの内、先に送信される LSB 側の 4bit はデータ 3bit + ソフトで計算したパリティ 1bit で使用し、MSB 側の 3bit はストップビットと同じく 1 固定で使用すれば調整なしで通信は可能では。