S32K312 FlexCANの正誤表における拡張RX FIFOおよびメッセージバッファ使用に関する説明こんにちは、 

現在、S32K312のFlexCANモジュールを使用しており、受信には拡張RX FIFO(ERF)を使用する予定です。S32K312_0P09Cの正誤表を確認していたところ、拡張RX FIFO動作に関する以下の正誤表を見つけました。
- ERR052403 – Enhanced RX FIFOでは、メッセージバッファ(MB)が複数のCANフレーム時間にロックされている場合にCANフレームがドロップします。
- ERR052438 – Enhanced RX FIFOを使用するとCANフレームがドロップされることがあります。
- ERR052558 – 拡張RX FIFOを読み取る際に、メッセージバッファオーバーラン状態がクリアされる可能性があります。
これらの正誤表に記載されている回避策では、特定のメッセージバッファ、具体的にはMB0~MB7、およびMB0、2、10、12、20、22、30、32、40、50、60の使用を避けることを推奨しています。
以下の点について明確にしておきたいと思います。
- 拡張RX FIFOおよびメッセージバッファのメモリ構成
- 拡張RX FIFOが有効になっている場合、内部的にはメッセージバッファ0~63と同じメモリ空間を使用しますか?
- そうでない場合、拡張RX FIFOとメッセージバッファは完全に独立しており、ERFを受信専用に使用し、メッセージバッファを送信および/または受信用に独立して使用できるのでしょうか?
- ERFを有効にした状態でのメッセージバッファの使用
- 拡張RX FIFOが有効になっており、エラータに記載されているメッセージバッファが完全に回避され、残りのメッセージバッファが送信のみに使用される場合、他に制限事項や既知の問題はありますか?
- 上記の誤りに関して、「受信用ERF+送信用非影響MB」の構成は完全にサポートされており、安全であるとみなされますか?
- ERFとメッセージバッファの同時使用
- 受信にERFを使用し、影響を受けていないメッセージバッファのみが受信および/または送信に設定されている場合、上記の訂正表はフレーム損失やその他の予期せぬ動作を引き起こす可能性がありますか?
- 正誤表に記載されているメッセージバッファの使用
- 影響を受けたメッセージバッファ(MB0、2、10、12、20、22、30、32、40、50、60)は、ERFが有効化された場合に安全に受信に利用できますか?
- 受信に使うべきでないなら、問題なく送信に使うことは可能でしょうか?
- より一般的に、NXPはこれらのメッセージバッファを完全に避けることを推奨しているのでしょうか、それともRXメッセージバッファまたはTXメッセージバッファとして構成されているかどうかに応じて、特定の制限があるのでしょうか?
ERFとメッセージバッファ間の内部メモリマッピング、および安定した動作のための推奨構成について、ご説明いただければ幸いです。
ありがとう
Re: Clarification on Enhanced RX FIFO and Message Buffer Usage with S32K312 FlexCAN Errataこんにちは、
質問に対する私のフィードバックをご覧ください...
1.
a) いいえ、ERFとMBは同じメモリを共有しません
b) はい、ERFは送信および/または受信用メッセージやMBの受信に使えます。確かに、この使用法に関する誤りはほとんどありません。
2.
a) この組み合わせでは問題なし(受信にはERF、送信には影響を受けないMBを使用)
b) はい、この構成(受信用のERF + 送信用の影響を受けないMB)は完全にサポートされており、エラータに関して安全であると考えられています。
3. 組み合わせの場合(ERFは受信に使用され、受信および/または送信には影響を受けていないMBのみが設定されている場合)、フレーム損失やその他の予期しない挙動が見られません
4.
a) いいえ、ERF使用時の受信には影響を受けるMBの使用は避けるべきです
b) 影響を受けたMBはTXにも使用すべきではない
c) はい、ERFが有効になっている場合は、影響を受けるMBの使用を完全に避けることを推奨します。
BR、ペトル