内蔵クロックのジッターはどのくらい?

初めての投稿です。
G12内蔵の24MHzで4MBPSのUART通信を行っております。
オシロスコープで1BITを測定するとジッターが2NSECでした。
1BITが250NSECのためマージンが心配です。
ジッターの定格が記載されている資料が見つからなかったので投稿させていただきました。
よろしくお願いします。

1yrqFJr5B00SO69T-0_A0189.jpg

  • スタッフのチョコです。

    tanakar様のスレッドにコメントさせていただきます。

    クロックのジッタ以前に,RL78/G12での4MbpsのUART通信はお勧めできません。

    4Mbpsの場合のサンプリング周波数は6倍の24MHzで,このことはスタート・ビットのサンプリング遅れが最大で41.7nsになると言うことです。さらに,入力のセットアップやホールド等を加味するとこの倍程度と考えられます。つまり,80ns以上遅れることになります。
    ここに,受信波形の鈍り(おそらく10ns以上は考えられるのではないかと思います)が加算されます。
    そうなると,スタートビット検出は90ns以上遅れてしまい,データのサンプリング・タイミングはビットの中央からこの分はずれて(遅くなって)しまいます。マージンで言うと,理想的な場合の125ns(50%)が35ns(14%)以下になることになります。この値をビット長(9.5)で割ると,ボーレートのマージンは1.5%以下になります。クロックの精度が±1%なので,残りの許容誤差は0.5%以下になり,ほとんどマージンがない状態になります。
    現在通信できていても,それがいつでもそうなるとは言えない状態ではないでしょうか。


  • tanakarさん

    RL78/G13でですけども、クロック出力をスペアナで見てみました。
    統計的にジッターは±0.15%くらいですかね。

    左の図を見ていただくと分かるように
    高速オンチップオシレーターのクロック分布は広い範囲に広がっていますので天文学的に低い確率ですが±1%を超えるジッターが出る可能性は否定できません。
    ちなみに、エクセルで計算できなくなるのは誤差±0.15%あたりです。

    真ん中の図は温度係数を見るために急冷剤を吹きかけて約-40℃で測定してみました。
    (23.979MHz-24.056MHz)/(27℃-(-40℃))=-1.15KHz/℃となり寒くなると周波数が高くなることが分かります。
    また、温度偏差(-40℃~27℃)の0.32%に比べるとジッタの0.15%は大したことありません。

    ちなみに、セラロック(右の図)と比べると
    標準偏差ρ=0.13KHzなので、高速オンチップオシレーター(ρ=3.9KHz)は30倍もジッターが大きいことになります。
    HOCOは振動子のような物理的な共振を使っているのではないので精度が二桁くらい悪いようですね。

    ●誤差と確率の計算
    周波数(ジッター)がある範囲(信頼区間)に収まる確率は確率密度関数を使うと計算できて、確率は周波数範囲(幅)に対して指数関数的に収束していきます。
    ±1σ=±3.9KHz(誤差±0.02%)に収まる確率は68.27%
    ±2σ=±7.9KHz(誤差±0.03%)は95.45%
    ±3σ=±11.8KHz(誤差±0.05%)は99.73%
    ±4σ=±15.7KHz(誤差±0.07%)は99.994%
    ±5σ=±19.6KHz(誤差±0.08%)は99.99994%
    ±6σ=±23.6KHz(誤差±0.10%)は99.9999998% (21seconds@24MHz)
    ±7σ=±27.3KHz(誤差±0.11%)は99.9999999997% (4.5hours@24MHz)
    ±8σ=±31.2KHz(誤差±0.13%)は99.9999999999999% (1year@24MHz)
    ±9σ=±35.1KHz(誤差±0.15%)は、ほぼ100% (1900years@24MHz)
    ±61.5σ=±239.8KHz(誤差±1%)は、限りなく100%

    UARTのように分周されたクロックは、サンプル数nが多くなるので確率的(1/√n)に収束します。
    なので、ジッターが0.15%のクロックを使って4Mbps(6分周)の場合は、UARTクロックとしてのジッターは0.06%、
    115200bps(208分周)の場合は、(1/√208)に収束するので、0.01%になります。

    ★測定条件
    QB-R5F100LE-TBボードVDD=3.3V、PCLBUZ0にシステムクロックを出力して、ハイインピーダンスプローブ経由でスペアナに入力


    PS
    チョコさんのご指摘の通り実はスタートビット検出誤差の方が周波数ジッターよりも、よっぽど大きかったですね。
    でも、こんな低分周のUARTができるのはRL78くらいなもんなんですけどねー。

    3PGKA9r41Ne0O5Ut-1_A0191.gif

    AagbR8NjfBSp91Ta-0_A0190.gif

    hUltZxnSytDYCfMh-2_A0192.gif

  • そのUARTの仕様や作りたい回路は知りませんが、クロックを送る方法も有ります。
  • チョコ様
    受信エラーが稀に発生していたためジッターを疑っていました。
    解説していただきUARTの理解が深まりました。
    タイミング設計を見直しボーレートを下げるかCSIに変更したいと思います。

    Kirin様
    わざわざジッター測定ありがとうございます。
    クロック精度±1%に対して十分に小さい事がわかりました。
    エクセルは便利なツールだという事も分かりました。

    リカルド様
    双方向高速通信でかつ通信線数が少ないUARTを検討していました。
    アドバイスに従ってCSIで対応できるか検討したいと思います。
    懸案はCSI3本の他にスレーブ側からの送信リクエスト用ハンドシェーク線が1本増える事です。

    皆様ありがとうございました。