評価ボードS32K3X4EVB-T172では、
CAN FD伝送速度を4Mbpsから5Mbpsまたは8Mbpsに上げると、データ位相波形の出力が停止します。この問題を解決する方法についてアドバイスを頂きたいです。
データ転送は 500 kbps ~ 4 Mbps の範囲で正常に動作しています。
調停フェーズは 1 Mbps、ペイロードは 64 バイトです。
こんにちは@ Tomato1
8MB をテストすることはできませんが、S32K3X4EVB の 5MB をあなたの構成でテストしたところ、完璧に動作しました。
添付ファイルを確認しました。
同じ操作を再現することができました。
しかし、オシロスコープで波形を確認すると、ビット幅は1usであり、データフェーズは1Mbpsで送信されているように見えます。
「brs」を TRUE に設定すると、波形の途中で送信が停止します。
ご確認下さい。
こんにちは@ Tomato1
私の間違いです。
再テストしたところ、以前は BRS と拡張 CBT を有効にしていなかったことがわかりました。
添付の結果は S32K344EVB に基づいています。
レートが 5MB に達すると、TDC 構成を有効にする必要があることがわかりました。そうしないと、通信が失敗します。(4MBでも問題は発生しませんでした。)
Senlent_0-1766135334057.png
Senlent_1-1766135386420.png
(TDC の ETDCOFF 値は、簡単なテストに基づいて入力した値です。理論的には、使用されるトランシーバとバス アーキテクチャに関連しています。
ご返信ありがとうございます。
添付ファイルでは 8Mbps で送信できましたが、約 100 秒間連続送信した後、メイン関数の次の行でループを終了できなくなりました。これについてご確認いただければ幸いです。
送信間隔が約 1 秒であるにもかかわらず、レジスタ「IFAG1」のビットが 1 に設定されていないか、誤ってクリアされている可能性があります。
こんにちは@ Tomato1
8MB/秒の速度でテストするためのテスト環境がありません。
ESR レジスタを自分で確認して、エラーの考えられる原因を確認するCAN。これはおそらく、TDC 構成値に関連していると思われます。
これを自分でトラブルシューティングするには、ある程度の時間を費やす必要があります。CANの送信のタイムアウトチェックを追加し、タイムアウト後に「FlexCAN_Ip_AbortTransfer」を呼び出して再送信を試みることができます。