こんにちは、
4 つの SENT チャネルを設定し、添付ファイルに示すようにチャネルを割り当てました。SENT RX および DMA 転送用に Timer0、1、2、3 が構成されることを期待しています。タイマー 5、6、7、8 は SPCO 用に設定されています。SPCO で SENT フレームが表示されています。タイマー比較フラグのビット 0 と 1 が設定され、DMA 転送が開始されてフラグがクリアされることが予想されます。S32K388 コントローラーを使用しています。
参考までに - ソフトウェアは現在 2 つの SENT のみを使用しています。つまり、SPCO はチャネル 0 と 1 に対してのみ送信されます。
1 つの観察結果は、TIMERSDEN レジスタが 0x0C の値を示していることです。4 つの SENT がすべて構成されている場合、0x0F の値が表示されるのではないでしょうか。また、2 つの SENT のみが使用されている場合、このレジスタには 2 つのビット セットのみが表示されるのでしょうか?2 ビットだけなら、ビット 0 と 1 はタイマー 0 ビットとタイマー 1 ビットではないでしょうか?TIMERSDEN レジスタへのタイマー マッピングに不一致があると思われます。
構成の詳細とソフトウェア バージョンについては、添付のスクリーン ショットをご覧ください。
ビルドバージョン: S32K3_RTD_6_0_0_D2506_ASR_REL_4_7_REV_0000_20250610
* プロジェクト: RTD AUTOSAR 4.7
* プラットフォーム: CORTEXM
* 周辺機器: FLEXIO_SENT_IP
こんにちは、
S32DS 内の Sent_Receiver_S32K344 RTD デモ例を使用して構成を模倣しようとしました。
FlexIO チャネル 0、1、2、3 を SENT RX および DMA 転送用に構成し、チャネル 5、6、7、8 を SPC 用に構成することを選択しました。
Sent_init が呼び出された後、TIMERSDEN=0xF が表示されますが、これはチャネル マッピングと一致しているようです。
直接確認できるように、完全な構成と簡略化されたプロジェクトを共有していただけますか?
BR、ペトル
私たちは S32K388 コントローラを使用しています。プロジェクト用の添付構成ファイルをご覧ください。フィードバックをお待ちしています。
こんにちは、
最新の構成を添付します。
こんにちは、
私は EB Tresos をあまり使用していないため、SW チームに設定ファイルの確認を依頼しました。
SW エンジニアの返信 (コールバックの使用法を示す) を直接転送しましたが、ここに掲載するのを忘れました。それでも解決しない場合はお知らせください。再度質問させていただきます。
ありがとうございます
ペトル
こんにちは@annappa
通話中に話し合ったように、最新の構成とコードの変更をアップロードしていただけますか?
よろしくお願いいたします!
こんにちは、
チャネル 0 Flexio_Sent_Ip_DmaTimerValue_0_0配列に割り当てられた DMA バッファの値は12です。データプロセッシング中に、SPC を含むデータの数を計算しています (Func: Flexio_Sent_Ip_DmaHandler行: NumberOfData = レシーバ->ChnlCfg[ChannelId].DmaBufferDepth * (レシーバ->ChnlCfg[ChannelId].NibbleCnt + 3U + (uint8)((レシーバ->ChnlCfg[ChannelId].SpcMode == FALSE) ? 0U : 1U));生成されたバッファー配列は12ではなく14になる必要があります。また、Ch0 の DMA バッファー値が Ch1 バッファーにオーバーフローしていることがわかります。
以下は説明が添付されたスクリーンショットです。
DMA_BufferSize12_WithOverFlow : DMA バッファ サイズ 12 では、データは Ch1 バッファにオーバーフローします。
DMA_BufferSize14_WithOutOverFlow : DMA バッファ サイズ 14 では、Ch1 へのデータのオーバーフローは発生しません。
Buffer_comparison_Srouce_Code : Flexio_Sent_Ip_Cfg.cファイルでバッファ サイズを手動で 14 に編集した後のコード比較。
よろしくお願いします。
ありがとう@annappa
また、最新の構成を共有していただけますか?
よろしくお願いします!
こんにちは@annappa
SENT 一時停止パルスを有効に変更してみませんか?
2026-03-03_11-26-19.png2026-03-03_11-26-19.png
ありがとう。よろしく。
アクセル
こんにちは、アクセルさん。
MCLでDMA論理チャネルとFlexioコールバック関数を設定しました。添付のスクリーンショット(DMA_Channel_config)をご覧ください。また、SENT処理タイプはDMAに設定されています。添付のスクリーンショット(SENT_DMA_Process)をご覧ください。
DMA割り込みをDMAで処理するためにドライバがどのように使用するのか教えてください。
よろしくお願いします。
アンナッパ
こんにちは、アンナパさん。数週間前に私が投稿した「一時停止」チェックボックスは試してみましたか?
また、SENTからのプロセッシングは通知を通じて行われます。
Screenshot 2026-03-18 095735.pngScreenshot 2026-03-18 095735.png
ポーズパルスを有効にすることでDMAバッファの問題が解決するか確認してください(バッファの要素数が12から14に増加します)。
よろしくお願いいたします。
アクセル
こんにちは、アクセルさん。
ポーズパルスを有効にすると、パルスバッファのサイズが増加する可能性がありますが、この設定はセンサの設定と一致しません。センサの設定では、ポーズパルスは無効になっています。一時停止なしのパルスアレイは、バッファサイズ14で生成される必要があります。
よろしくお願いします。
アンナッパ
こんにちは、アクセルさん。
この件に関して何か最新情報はありますか?
これはドライバの不具合でしょうか?
よろしくお願いいたします
ラフル
こんにちは、
ドライバーの変更が必要であることは確認されています。Jira チケットは次のとおりです: [SRTDCCOM-3401] [SENT]SPC モード使用時に Dma バッファがオーバーフローします - NXP JIRA 。
よろしくお願いいたします。
ジョン