親愛なるチーム
私は S32K388CVB-Q289 を使用しており、TJA1153 CAN0 とともに FlexCAN_0 を有効にしています。テスト目的で物理バスに 2 番目のノードをコネクテッドしています。
しかし、FlexCAN_0は送信時にAckエラーが発生します
TJA1153 トランシーバが有効になっていることを再確認し、J95 のピン 5 を測定すると、約 2 ボルトと表示されます。また、GPDO85 レジスタを 0 と 1 の間で変更しても、ピンで読み取られる電圧は影響を受けません。
GPDO85レジスタでピンがハイに設定され、MSCR85で出力ドライバが有効になっていることがわかりますが、
構成:
こんにちは、
ピンレベルを確認するには、J95.5-6ジャンパーを取り外し、MCU(5)とTJA1153(6)側を確認します。
TJA1153のVIOはJ804を使用してVDD_HV_B_PERH(VDD_HV_B 3.3V)にコネクテッドされていますが、使用されているMCUピンはVDD_HV_A(5V)にコネクテッドされています。
ユーザーが TJA1153 モードを切り替える必要がない限り、EN ピンを駆動する必要はありません。EN と STB_N は両方とも外部抵抗によって VIO にプルアップされます。デバイスがバニラ状態の場合、ローカル構成を可能にするために、MCU によって STB_N を低く駆動する必要があります。TJA1153 の構成の最後に、STB は EN、STB_N がハイの状態で通常モードに戻ります。
バス上にメッセージが表示されても ACK されない場合は、両方のノード間の CAN ビット タイミングが一致していないことが原因である可能性が最も高くなります。
ご返信ありがとうございます。
電圧レベルは今のところ良好なようです。EN と nSTB がハイになります。それでも、Ack エラーが発生し、テスト測定ツールのバスには何も表示されません。
トランシーバがバニラ状態であるため、一度設定するまで動作しない可能性はありますか?
例を読みましたが、現在のセットアップでは、トランシーバを相互に接続するよりも、テスト ツールから CAN メッセージを送信する方がはるかに簡単です。送受信のみの基本構成(セキュリティ要件は不要)の場合、初期化シーケンスと、CAN経由で送信する必要があるものについて教えていただけますか?
こんにちは、
デフォルトではデバイスはバニラ状態になっているSO、ホストまたはリモートから構成する必要があります。設定後、状態を変更できますが、例では通常 Vanilla 状態に維持されるため、電源を入れるたびに init が必要です。
掲載された例がボード上の FlexCAN モジュール間で動作している場合、CAN ツールに 1 つのモジュールだけをコネクテッドしても同様に動作するはずです。この例では、送信される ID が CAN0 トランシーバのパスリストに追加され、他の構成はデフォルトのままになります。
別の init シーケンスについては、IP レベルで実行された以下の例を参照してください。
https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K358-FlexCAN-TXRX-ISR-S32DS35-RTD400-500...
トランシーバもバニラ状態にあることを想定しており、トランシーバのパスリストをすべてのstdおよびext IDを通過させるように設定し、バスからのメッセージをブロックしないようにします。最後に、不揮発性メモリへの書き込みやトランシーバのロックを行わずにコンフィギュレーションモードを終了します(バニラ状態を維持)。
BR、ペトル