こんにちは、
現在、モデルベースデザイン (MBD) アプローチを使用して CAN TX をテストしようとしていますが、CAN 送信が機能しません。どうぞよろしくお願いいたします。
私のテスト環境は次のとおりです。
- ボード: S32K344EVB-T172
- MBDバージョン: MBD Ver 1.8.0 (RTD V7.0.0)
- MATLAB: 2025b
- 設定ツール: S32CT (V2025.R1.8)
- CANツール: VehicleSPY BasicとValueCAN4
- FreeMASTER: バージョン3.2
参考資料:
https://community.nxp.com/t5/NXP-モデルベース設計ツール/デジタル入力と出力の相互作用-MR-CANHUBK344/ta-p/1746789
テストの説明:
このテストでは、ポテンショメータから ADC 値を読み取り、それを電圧 (mV 単位) に変換し、ID 0x100 で CAN 経由で送信します。
ADC 結果 (ADC_Voltage_mv、0~5000 mV) が FreeMASTER で正しく動作していることが検証されています。
CANトランシーバー(TJA1443)の初期設定:
- CAN0_EN (PTC21) = HIGH
- CAN0_STB_N (PTC20) = HIGH
CAN構成:
- フレックスCAN0
- 500 kbps(サンプリングポイント:87.5%)
- 標準ID(11ビット)
- 8バイトのペイロード
- CAN TXポーリングモード
ハードウェア接続
- S32K344EVB-T172 ボード J32: ピン 1 (CAN_HIGH)、ピン 2 (CAN_LOW)
- ValueCAN4 チャネル 1 にコネクテッド: ピン 2 → CAN_LOW、ピン 7 → CAN_HIGH
- ビットレートを500 kbpsに設定
- 120オームの終端抵抗が有効
- CAN DB 構成:
ID 0x100 (8バイト)
ID 0x101 (8バイト)
係数 = 1、オフセット = 0
テスト結果
- シミュレーションエラーなし
- ビルドとデプロイメントが正常に完了しました
- ADCは正常に動作します
- CAN TXはVehicleSPYでは観測されません
レビュー用にソースファイルを添付しました。考えられる原因に関して専門家のアドバイスをいただければ幸いです。
添付ファイル: CAN_TX_TEST.zip
- モデル: CAN_TX_TEST.slx
- 実行ファイル: CAN_TX_TEST.elf
- 設定ファイル: CAN_TX_TESTConfig.mex
- CAN DB: CAN_DB_TEST_20260227.dbc
- FreeMASTERプロジェクト: CAN_TX_TEST.pmpx
ご協力ありがとうございます。
以前共有されたリンクは間違っていました。こちらが正解です。
https://community.nxp.com/t5/NXP-モデルベース設計ツール/CANバス経由の通信/ta-p/1758456
こんにちは、
あなたのモデルをダウンロードしてビルドしたところ、説明どおりに動作しました。ADCは正常に動作しますが、CANは動作しません。
まず、お持ちの基板のリビジョンをご確認ください。リビジョンによってCANトランシーバが異なるためです。
お送りいただいた画像から判断すると、RevBをお持ちのようですが、画像が圧縮されているため画質があまり良くないので、念のためご確認ください。
RevBを使用している場合は、TJA1153を初期化する必要があります。ENピンとSTB_Nピンを設定するだけでは不十分です。初期化方法の例は、「s32k3xx_can_transmit_ebt」サンプルに記載されています。
基本的には、これらの手順をこの順番通りに実行する必要があります(各ブロックの優先順位を設定して、順番が守られるようにしてください)。
CANトランシーバ初期化バリアント内には、 TJA1153の初期化処理を含むMATLAB関数ブロックが必要です。
MATLAB関数の入力値は、以下の画像に示されています。
MATLAB関数を使用するには、MinGWコンパイラもインストールする必要があります。MATLABのアドオンマネージャで見つけることができます。
初期化部分を更新したSLXファイルも添付しました。
よろしくお願いいたします。
ソリン・バンシラ