外部 16MHz 水晶を備えた S32K310 を使用しています。クリスタルは 120 MHz の PLL を CORE_CLK に供給しています。AIPS_PLAT_CLK は 60MHz で動作しています。この配置から、UART (LIN 用) ボー レートの許容範囲がどの程度になるかを判断しようとしています。水晶からの誤差は 50ppm です。60MHz AIP_PLAT_CLK の許容範囲を完全に得るには、PLL からジッターを追加する必要があります。この AIPS_PLAT_CLK 許容値にジッターを含めるにはどうすればよいでしょうか?
そこから、以下の式を使用して UART のボーレート許容値 % を見つければよいのでしょうか?S32K3xx RM の UART セクションで、SBR と OSR 値を使用してボー エラーを計算する方法を確認します。最小/最大ボーレートを見つけるには、モジュール クロックの Fmin / Fmax の両方にこの式を使用するだけでよいのでしょうか?
こんにちは@jmnemerさん、
1.実際のボー レートを計算するには77.3.1の式を使用し、ボー レートの不一致に対する許容範囲を見積もるには77.3.3章を使用する必要があります。SLOW はレシーバがトランスミッタより遅い場合を指し、 FAST はその逆の場合を指します。
2. この 840ps は最悪 CASE (最大) のジッタ値を表します。絶対的に最悪のCASEを想定して設計している場合を除き、pk-pk ジッター値ではなく RMS 値を使用する方が良いと思います。
RMS ジッタ値は次のようにCAN計算されます (+/- 7 シグマを考慮):840ps/14 = 60ps。
ここで、120MHz のクロックは 8.333ns または 8333ps の周期を示します。つまり、ジッター % は 60ps/8333ps = 0.72% と CAN 計算できます。
50ppm の許容誤差 (0.005%、またはこのCASE、計算された0.0068) を追加すると、合計許容誤差の 0.7268% が得られ、これを使用して AIPS_PLAT_CLK (60 MHz) の Fmin と Fmax を計算CAN。ただし、これが PLL 全体の許容範囲と見なせるかどうかはわかりませんので、これを確認するため、ソフトウェアにサポートチケットを発行します。
社内チームから情報が入り次第、返答させていただきます。
よろしくお願いします、
ジュリアン
こんにちは、ジュリアン。
サポートありがとうございます!いくつか追加の質問があります。
1.77.3.1 と 77.3.3 の式はいつ使用される予定ですか?3 つの方程式すべてを使用して計算すると、まったく異なる値が得られます。FAST と SLOW の違いは何ですか?
2. PLL ジッターを AIPS_PLAT_CLK 許容値に適切に追加するにはどうすればよいですか?S32K3xx DS では、120MHz の整数モードで 353ps のサイクル ジッタと 840ps の累積ジッタがあることがわかります。DS は、これらの数値は RMS からの 7 シグマであると述べています。これらを使用して実際の Fmin / Fmax を見つけるにはどうすればよいですか。水晶の約 50 ppm を約 +/- 0.0068% と計算しました。これにジッターを追加するにはどうすればいいでしょうか?単純に 840 ps を周期に加算/減算すると、許容誤差が小さくなってしまいます (> 10%)。それは正しいとは思えません。このパラメータでは RMS 値を使用する必要があるのでしょうか?
よろしくお願いします!
こんにちは@jmnemerさん、
はい。あなたの実装は正しいと思います。77.3.2章と77.3.3章にはクロックの不確実性やクロック ソースからのジッターは含まれていないため、Fmin 値と Fmax 値を使用したボー レートの式を使用してボー レートの範囲を決定し、そこからボー エラー % を計算できます。
水晶の許容誤差 + PLL ジッタを考慮してクロックの合計周波数変動を見積もる必要があります。ただし、 LIN ドライバでは、デフォルトで OSR = 16U が固定であると想定して計算が自動的に実行されることに注意してください。
よろしくお願いします、
ジュリアン