こんにちは。S32K312 が 3 つの CAN チャネルで構成され、CAN0 が Legacy RxFiFO で有効になっており、メールボックスの数が 32 に設定され、フィルター テーブルの数が 8 に設定されています。CAN1 は受信に標準のメールボックスを使用し、メールボックスの数は 32 に設定されています。
1. CAN1 はメールボックス 18 を使用して正常にメールを受信できますか? 現在、メールボックス 18 を使用してメールを受信できますが、各 CAN が具体的にどのようにメールボックスを占有するのかがよく分かりません。
2. CAN1 を受信用に RxFiFO に切り替えた場合、CAN1 の FIFO メールアドレスは 32 から始まる 8 つのメールアドレスのいずれかになりますか?
ありがたい。
こんにちは@Florence100733さん、
両方の質問を完全に理解できたかどうかわかりませんので、誤解があればご指摘ください。
1.can1の受信メールボックスを18で正常に受信できるかどうか、現状18で受信はできるのですが、各canがどのようにメールボックスを占有しているかがよく分かりません。
はい、正常に受信できます。CAN0 の RxFIFO の使用は CAN1 からのメールボックスを消費しません。各 CAN インスタンス (FlexCAN0、FlexCAN1、…) には、独立した MB スペースと RAM があります。メッセージバッファは、アドレスオフセット0080hから始まるFlexCAN組み込みRAMにマッピングされます。73.6.5章「FlexCANメッセージバッファのメモリマップ」を参照してください。
2. can1 が受信のために RxFiFO にスイッチする場合、can1 の fifo メールボックスは 32 から始まる 8 つのメールボックスですか?
レガシー RxFiFO について言及していると思います。いいえ、受信は常にMB0から開始されます。73.6.6 章「レガシー RX FIFO 構造」を参照してください。「MCR[RFEN] = 1 の場合、メモリ領域 80h~DCh (通常は MB 0~5 によって占有されます) は受信レガシー FIFO エンジンによって使用されます。」
レガシー FIFO は 6 つのメッセージまで格納できることに留意してください。
よろしくお願いします、
ジュリアン