2398263_ja-JP

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2398263_ja-JP

2398263_ja-JP

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

こんにちは、

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

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

CosminSbera_0-1784803400829.png

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

CosminSbera_4-1784803522819.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.png


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

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




标记 (1)
无评分
版本历史
最后更新:
1 周之前
更新人: