2398263_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2398263_ja-JP

2398263_ja-JP

S32K314でDMAを使用したUARTが正しく動作しません

こんにちは、

現在、DMAと連携するようにLPUART0チャネルの設定を試みています。UARTチャネルは1Mbpsのビットレートで動作している必要があります。

現在のUARTとDMAの設定は以下のようになっています。

CosminSbera_0-1784803400829.pngCosminSbera_0-1784803400829.png

CosminSbera_1-1784803453733.pngCosminSbera_1-1784803453733.pngCosminSbera_2-1784803479911.pngCosminSbera_2-1784803479911.pngCosminSbera_3-1784803495720.pngCosminSbera_3-1784803495720.png

CosminSbera_4-1784803522819.pngCosminSbera_4-1784803522819.pngCosminSbera_5-1784803539872.pngCosminSbera_5-1784803539872.png

MCUではクロックが有効化され、バッファはキャッシュできない領域内に宣言され、DMAのISR優先度はLPUARTよりも小さいです。

私たちの問題は、RXバッファ内のデータを見ることができない、あるいはデータが不完全であることです。

私たちのワークフローはこうです(LINコミュニケーションに似ています)
受信バッファを準備 -> AsyncReceive
スレーブにヘッダーを送信する -> AsyncSend
次のサイクルでスレーブからデータが受信されるまで待機します(私の関数は1msのタスクで実行されます)。

AsyncSendの実行後にブレークポイントを設けると、RXバッファ内のスレーブからのすべてのデータ送信が確認できます。
そのまま実行させても、何も表示されないか、不完全な結果しか得られない。
私の推測では、DMA割り込みは後から発生する。

私たちの設定のどこが問題なのか、あるいは次に何をチェックすればいいのか、いくつかヒントを教えてもらえますか?

ご回答をお待ちしています。

コスミン


Re: Uart using DMA is not working correct on S32K314

こんにちは、@ CosminSbera

1. DMA要求オプションを有効にするのを忘れないでください。

Senlent_0-1784861937675.pngSenlent_0-1784861937675.png


2. 「プラットフォーム」コンポーネントでLPUART0_IRQn割り込みを有効にするのを忘れないでください。

「プラットフォーム」->」LPUART0_IRQn--LPUART_UART_IP_0_IRQHandler」




タグ(1)
評価なし
バージョン履歴
最終更新日:
‎07-24-2026 02:38 AM
更新者: