cancel
Showing results for 
Search instead for 
Did you mean: 

How to configure DMA with USART for burst mode to to increase data throughput?

DevBee
Associate II

Hello,

Am using STM32F4 DISC, but could not get clear picture of burst mode setup in st reference manuals or online. I could make DMA work only with datawidth as byte at memory and peripheral side and burst as single for both and inc address selected for memory, in CubeMxIDE.

Using DMA for receiving data from USART, normal mode with FIFO enabled.

How to increase datawidth size to say word, on memory side and peripheral side with and without taking advantage of burst? (Kindly provide both configurations).

Confirm if below configurations work:

-With single burst selected:

Select word size on both peripheral and memory.

-With datawidth as byte on memory and peripheral with 4 increment on both memory and peripheral

3 REPLIES 3

The USART doesn't have a FIFO, the TXE flags some 9-10 bit clocks before it needs the data, the RXNE has similar time horizons for a overrun. The USART->DR is nominally 16-bit wide (half-word) to accomodate 9-bit data patterns. I don't see burst mode helping.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
DevBee
Associate II

Oh... So, burst mode option is an ignorable feature with USARTs, is it? (as we have 8 bit data registers always).

i think it is a rather simplistic peripheral, where bursting might be helpful is larger block transfers to FIFO's in things like ETHERNET, USB, or SDIO. Things where the bus arbitration become dominant

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..