S32K312 uart AsyncReceive callback event is always error when SPI DMA transfer mass data

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

S32K312 uart AsyncReceive callback event is always error when SPI DMA transfer mass data

203 次查看
gan89557
Contributor I

Hello, 

S32K312 S32DS3.5 RTD4.0.0 project, SPI0 and SPI1 work with DMA mode, and UART1 work with Interrupt mode.

UART1 work well when sync send or async receive a frame  of 12 bytes.

But uart AsyncReceive callback event is always error when SPI DMA transfer mass data.

Any suggestion?

0 项奖励
回复
2 回复数

105 次查看
gan89557
Contributor I

Yes, It is the Interrupt Priority Issue, Uart1 works after Raising it's Priority.

Thanks so much!

0 项奖励
回复

113 次查看
PetrS
NXP TechSupport
NXP TechSupport

Hi,

there can be below possible reasons for UART Async Receive Errors during SPI DMA bursts:

1. Interrupt Priority Issue

- UART RX interrupt is not serviced quickly because DMA completion or other ISRs have equal or higher priority.
- Result: UART RX FIFO overflows → overrun or framing error.

Ensure LPUART1_IRQn has higher priority (numerically lower) than all DMA-related IRQs (e.g., DMATCDx_IRQn). Confirm interrupt grouping allows preemption.

2. Bus Occupation by DMA

- eDMA channels for SPI can saturate the AXBS crossbar during large bursts.
- CPU and peripheral register accesses (including UART RX handling) are delayed, increasing ISR latency.

Configure SPI DMA channels to allow eDMA engine stalls (BWC setting)
 
BR, Petr

 

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-2261799%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ESPI%20DMA%20%E4%BC%A0%E8%BE%93%E5%A4%A7%E5%AE%B9%E9%87%8F%E6%95%B0%E6%8D%AE%E6%97%B6%EF%BC%8CS32K312%20uart%20AsyncReceive%20%E5%9B%9E%E8%B0%83%E4%BA%8B%E4%BB%B6%E6%80%BB%E6%98%AF%E5%87%BA%E9%94%99%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2261799%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%20%3C%2FP%3E%3CP%3E%E5%9C%A8%20S32K312%20S32DS3.5%20RTD4.0.0%20%E9%A1%B9%E7%9B%AE%E4%B8%AD%EF%BC%8CSPI0%20%E5%92%8C%20SPI1%20%E9%87%87%E7%94%A8%20DMA%20%E6%A8%A1%E5%BC%8F%EF%BC%8CUART1%20%E9%87%87%E7%94%A8%E4%B8%AD%E6%96%AD%E6%A8%A1%E5%BC%8F%E3%80%82%3C%2FP%3E%3CP%3E%E5%BD%93%E5%90%8C%E6%AD%A5%E5%8F%91%E9%80%81%E6%88%96%E5%BC%82%E6%AD%A5%E6%8E%A5%E6%94%B6%2012%20%E5%AD%97%E8%8A%82%E7%9A%84%E5%B8%A7%E6%97%B6%EF%BC%8CUART1%20%E8%BF%90%E8%A1%8C%E8%89%AF%E5%A5%BD%E3%80%82%3C%2FP%3E%3CP%3E%E4%BD%86%20SPI%20DMA%20%E4%BC%A0%E8%BE%93%E5%A4%A7%E5%AE%B9%E9%87%8F%E6%95%B0%E6%8D%AE%E6%97%B6%EF%BC%8Cuart%20AsyncReceive%20%E5%9B%9E%E8%B0%83%E4%BA%8B%E4%BB%B6%E6%80%BB%E6%98%AF%E5%87%BA%E9%94%99%E3%80%82%3C%2FP%3E%3CP%3E%E6%9C%89%E4%BB%80%E4%B9%88%E5%BB%BA%E8%AE%AE%E5%90%97%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2262870%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K312%20%20uart%20AsyncReceive%20callback%20event%20is%20always%20error%20when%20SPI%20DMA%20transfer%20mass%20data%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2262870%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%98%AF%E7%9A%84%EF%BC%8C%E8%BF%99%E6%98%AF%E4%B8%AD%E6%96%AD%E4%BC%98%E5%85%88%E7%BA%A7%E9%97%AE%E9%A2%98%EF%BC%8CUart1%20%E5%9C%A8%E6%8F%90%E9%AB%98%E4%BC%98%E5%85%88%E7%BA%A7%E5%90%8E%E6%89%8D%E8%83%BD%E5%B7%A5%E4%BD%9C%E3%80%82%3C%2FP%3E%3CP%3E%E9%9D%9E%E5%B8%B8%E6%84%9F%E8%B0%A2%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2262730%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20S32K312%20%20uart%20AsyncReceive%20callback%20event%20is%20always%20error%20when%20SPI%20DMA%20transfer%20mass%20data%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2262730%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%82%A8%E5%A5%BD%EF%BC%8C%3C%2FP%3E%0A%3CDIV%3E%0A%3CP%3ESPI%20DMA%20%E7%AA%81%E5%8F%91%E6%9C%9F%E9%97%B4%20UART%20%E5%BC%82%E6%AD%A5%E6%8E%A5%E6%94%B6%E9%94%99%E8%AF%AF%E5%8F%AF%E8%83%BD%E6%9C%89%E4%BB%A5%E4%B8%8B%E5%8E%9F%E5%9B%A0%EF%BC%9A%3C%2FP%3E%0A%3CP%3E1.%E4%B8%AD%E6%96%AD%E4%BC%98%E5%85%88%E7%BA%A7%E9%97%AE%E9%A2%98%3C%2FP%3E%0A%3CP%3E-%20%E7%94%B1%E4%BA%8E%20DMA%20%E5%AE%8C%E6%88%90%E6%88%96%E5%85%B6%E4%BB%96%20ISR%20%E5%85%B7%E6%9C%89%E7%9B%B8%E5%90%8C%E6%88%96%E6%9B%B4%E9%AB%98%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%EF%BC%8C%E5%9B%A0%E6%AD%A4%20UART%20RX%20%E4%B8%AD%E6%96%AD%E4%B8%8D%E8%83%BD%E8%BF%85%E9%80%9F%E5%BE%97%E5%88%B0%E6%9C%8D%E5%8A%A1%E3%80%82%3CBR%20%2F%3E%3CSPAN%3E-%20%E7%BB%93%E6%9E%9C%EF%BC%9AUART%20RX%20FIFO%20%E6%BA%A2%E5%87%BA%20%E2%86%92%20%E8%B6%85%E9%99%90%E6%88%96%E6%88%90%E5%B8%A7%E9%94%99%E8%AF%AF%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E7%A1%AE%E4%BF%9D%20LPUART1_IRQn%20%E6%AF%94%E6%89%80%E6%9C%89%E4%B8%8E%20DMA%20%E7%9B%B8%E5%85%B3%E7%9A%84%20IRQ%EF%BC%88%E5%A6%82%20DMATCDx_IRQn%EF%BC%89%E5%85%B7%E6%9C%89%E6%9B%B4%E9%AB%98%E7%9A%84%E4%BC%98%E5%85%88%E7%BA%A7%EF%BC%88%E6%95%B0%E5%80%BC%E4%B8%8A%E6%9B%B4%E4%BD%8E%EF%BC%89%E3%80%82%20%E7%A1%AE%E8%AE%A4%E4%B8%AD%E6%96%AD%E5%88%86%E7%BB%84%E5%85%81%E8%AE%B8%E6%8A%A2%E5%8D%A0%E3%80%82%3C%2FP%3E%0A%3CP%3E2%E3%80%82DMA%20%E7%9A%84%E6%80%BB%E7%BA%BF%E5%8D%A0%E7%94%A8%E6%83%85%E5%86%B5%3C%2FP%3E%0A%3CP%3E-%20%E7%94%A8%E4%BA%8E%20SPI%20%E7%9A%84%20eDMA%20%E4%BF%A1%E9%81%93%E5%9C%A8%E5%A4%A7%E7%AA%81%E5%8F%91%E6%9C%9F%E9%97%B4%E4%BC%9A%E4%BD%BF%20AXBS%20%E4%BA%A4%E5%8F%89%E6%9D%A1%E8%BE%BE%E5%88%B0%E9%A5%B1%E5%92%8C%E3%80%82%3CBR%20%2F%3E-%20CPU%20%E5%92%8C%E5%A4%96%E8%AE%BE%E5%AF%84%E5%AD%98%E5%99%A8%E8%AE%BF%E9%97%AE%EF%BC%88%E5%8C%85%E6%8B%AC%20UART%20RX%20%E5%A4%84%E7%90%86%EF%BC%89%E5%BB%B6%E8%BF%9F%EF%BC%8C%E5%A2%9E%E5%8A%A0%E4%BA%86%20ISR%20%E5%BB%B6%E8%BF%9F%E3%80%82%3C%2FP%3E%0A%3CDIV%3E%E9%85%8D%E7%BD%AE%20SPI%20DMA%20%E9%80%9A%E9%81%93%E4%BB%A5%E5%85%81%E8%AE%B8%20eDMA%20%E5%BC%95%E6%93%8E%E5%81%9C%E6%BB%9E%EF%BC%88BWC%20%E8%AE%BE%E7%BD%AE%EF%BC%89%3C%2FDIV%3E%0A%3CDIV%3E%26nbsp%3B%3C%2FDIV%3E%0A%3CDIV%3EBR%2C%20Petr%3C%2FDIV%3E%0A%3CBR%20%2F%3E%0A%3C%2FDIV%3E%3C%2FLINGO-BODY%3E