This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
I have an application that uses a 3MBaud Serial input, and has a burst of 384 bytes per transfer.
I have not been successful getting a DMA / UART system working that will generate only 1 interrupt for each block that is sent.
I am using Ping Pong Mode. The data is sent out the WiFi port.
Does anyone have any sample code that i could look at to use?
Thanks!
Hi Craig,
For DMA UART system you can refer to 'uart_dma' SDK example.
'I have not been successful getting a DMA / UART system working that will generate only 1 interrupt for each block that is sent.'
Are you getting multiple DMA done interrupts on UART Tx ? Please note that you will have to mask the DMA request from UART once you get an interrupt and re-enable it after you setup the DMA for next block transfer
Use MAP_UARTDMAEnable(UARTA0_BASE,UART_DMA_TX) and MAP_UARTDMADisable(UARTA0_BASE,UART_DMA_TX) APIs to enable and disable, respectively, the DMA requests from UART.
This is because once DMA has transferred configured number of items it will disable the channel, but the UART TX FIFO will keep on requesting for more data as it gets emptied. In such a condition the DMA will continuously raise a DMA done interrupt.
Let me know if this resolve your issue.
Thanks and Regards,
Praveen