こんにちは、
Eclipse OpenBSWプロジェクトを使用しながら、S32K148でFlexCAN2を有効にしようとしています。
FlexCAN0は正常に動作していますが、FlexCAN2は有効なフレームを送信しません。
構成:
MCU: S32K148
CANインスタンス: FlexCAN2
ピン:
PB12 → CAN2_RX (ALT4)
PB13 → CAN2_TX (ALT4)
外部トランシーバ:MCP2551(5V電源)
バス終端:合計約60Ω
ビットレート:500 kbps(従来型CAN)
観察された行動:
バス上ではエラーフレームのみが観測される
ビットスタッフィングエラーが発生する
ACKは受信されませんでした。
質問:
MCP2551(5Vトランシーバ)は、S32K148 FlexCANのI/Oレベルと互換性がありますか?
PB12/PB13のALT4はFlexCAN2の正しいピンですか?
FlexCAN0とFlexCAN2の間には、考慮すべき特定のクロックまたは構成上の違いはありますか?
どのようなご指導もいただければ幸いです。
よろしくお願いします。
こんにちは、 @sousou54 さん。
1.MCP2551との互換性に問題は見当たりません。
2. はい。
3. 追加の設定は不要です。CAN0/1/2は同じクロックで動作します。
ノードのテストを段階的に試してみてください...
トランシーバを使わずにTX/RXピン同士を接続してメッセージを送信してみてください。ACKが欠落しているため、メッセージが繰り返し表示されるはずです。TXエラーカウンタは0x80で、モジュールはエラーパッシブ状態です。それ以外の表示が出た場合は、PIN設定が間違っています。
TX/RXピンをトランシーバに通常通り接続し、バスからは切り離してください。メッセージを送る。上記と同じ画面が表示されるはずです。そうでない場合、トランシーバが無効になっているか、または終了していない可能性があります。
MCP2551のデータシートを見ると、RsピンをVssに接続して高速モードを選択する必要があることがわかります。
トランシーバを他のノード(例:CANツール)、メッセージの送受信。エラーが検出された場合、おそらくCANビットのタイミングが正しくないと考えられます。すべてのノードが同じビットレートとサンプルポイントを使用していることを確認してください。
以下のツールを使用できます: MPC5xxx/S32Kxx/LPCxxxx: CAN / CAN FD ビットタイミング計算。
最後に、これはカスタムボードですか、それともS32K148EVBを使用していますか?カスタムボードの場合は、 AN5426「S32K1xxのハードウェア設計ガイドライン」に記載されている接続を確認してください。
よろしくお願いします、
ジュリアン