2402012_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2402012_ja-JP

2402012_ja-JP

S32K314 CAN 発行

私はS32K314を使っていますが、最近テスト中に発振器がショートしてしまい、CANに関する問題が発生しました。

回復後、SPI、ADCを監視しました。これらのモジュールは正常に動作しますが、CANモジュールは通常通り動作しません。

デバッカはこれらの情報を表示しますが、この状態ではCANの受信や送信ができません。

どうしてこんなことが起きたのか、そしてSWでこの故障をどうやって回復すればいいのでしょうか?

Snipaste_2026-08-04_13-32-47.jpg

Re: S32K314 CAN issue

こんにちは、

ご返信ありがとうございます。

「Mcu_ClockSourceFailure_Notification」にテストコードを追加しようとしましたが、この通知はトリガーされません。

ソフトウェア側からは、この問題が起きてCANモジュールをリセットするにはどうすればいいのでしょうか?

よろしくお願いします。

下記は、ご指摘いただいたレジスタの値です。


MCR

KidhRobin_0-1785975444257.png

CTRL1

KidhRobin_1-1785975470032.png

CBT:

KidhRobin_2-1785975496485.png

FDCBT:

KidhRobin_6-1785975801928.png

ECR

KidhRobin_4-1785975599003.png

ESR1

KidhRobin_5-1785975618985.png




Re: S32K314 CAN issue

こんにちは、

提供されたスクリーンショットから、受信エラーカウンタ(RXERRCNT)が増加している一方で、TXERRCNTは0のままであり、ESR1が送信試行中であることを示しているにもかかわらず、典型的な送信関連の問題とは完全には一致しません。

発振器のショートサーキットがクロックに影響を及ぼし、例えば回復後のCANビットタイミングの誤差を引き起こす可能性があります。しかし、現在の情報だけではこれを裏付けるには不十分である。

以下の情報を提供していただけますか:

  • FlexCANレジスタ(MCR/CTRL1/CBT/FDCBT、ECR、ESR1を含む)のより広い範囲
  • モジュールおよびCANプロトコルのクロック構成は、
  • 故障時に記録されたTX、RX、CANバスの測定値は?

FlexCANモジュールのクロックとCANプロトコルのクロックが動作し、期待される周波数であれば、FlexCANモジュールのソフトウェアリセットを実行し、モジュールの初期化を完全に行い、通信が回復しているか確認することもできます。

BR、ペトル

Re: S32K314 CAN issue

こんにちは、

Mcu_ClockSourceFailure_Notification()が入力されていない場合、私の最初の仮定は、対応するMCU割り込み/通知経路がプロジェクト内で設定または有効化されていないということです。

以下を確認していただけませんか:

  • 影響を受けるクロックソースに対してクロックモニタリング(CMU)が有効になっているかどうか。
  • CMU割り込みが有効になっているかどうか。
  • MCUモジュールがクロック障害検出時にMcu_ClockSourceFailure_Notification()を呼び出すように設定されているかどうか。

また、発振器ショートサーキットイベント後にCMUおよびRGMの状態レジスタを検査し、クロック障害が実際に検出されているかを確認することも有用です。

FlexCANレジスタダンプから、モジュールは有効化され、バスと同期している(SYNCH=1)ように見えますが、RXERRCNTが増加し、TXERRCNTは0のままで、バスアクティビティがありません。表示されているビットタイミングレジスタ(CTRL1、CBT、FDCBT)には有効なCANタイミング設定が含まれていないようですが、強化されたCANビットタイミングを使用し、実際のタイミングがそれぞれの強化CANビットタイミングレジスタを通じて設定されている場合は予想されるかもしれません。

したがって、CANリセット戦略を実装する前に、クロック障害イベントが検出されているかどうか、通知機構が適切に設定されているかを確認することが望ましいです。

BR、ペトル

タグ(1)
評価なし
バージョン履歴
最終更新日:
昨日
更新者: