UART001_Example4

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hi
I'm exploring the UART001 examples and have some issues with understanding the setup of the DMA to use with the UART.

First of all, the example as it is delevered will transmit only every 4th byte of the Data array. This is when source and destination single transfer and DMA burst widths are set to 8 (one byte?). How does that happen? And, the tx FIFO registers are 16 bit, while the UART001 is set up with 8 data bits (only low address of INx is used), so how should this actually be set up?

Further, if I break in the DMA_IRQ_BLOCK event, each of the 10 blocks (every 4 bytes) are transmitted, but if I don't some of the blocks, or part of blocks, are lost. My only conclution is that the DMA occationally overwrites the buffer before the data is sent? Is this a trigger issue? How do I prevent this?
i.e. if
Data[12] = {0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c}; // a..l, BlockSize=12

when breaking between blocks the terminal output is:
aeiaeiaeiaeiaeiaeiaeiaeiaeiaei

when not breaking, terminal output:
aeiaeiaeiaeiaeiae

Last. Please explain the differences between DMA transfer types Auto-reload multi-block transfer and Auto-reload multi-block transfer(contiguous SAR). How does this behave if block size is larger than UART FIFO?


Thanks,
/Åse Maj
0 Likes
2 Replies
Not applicable
I was able to resolve the issue with the block overwriting by setting and resetting the Transfer Flow Type to Memory-Peripherial. Obviously there was a problem with the generated code (stuck in Memory-Memory mode?).

Anyway, I also tried to migrate the Dave Apps to the latest version, but then the transmitted data is something quite different and much larger than my set block size, so I reverted back to the older Apps.

The other questions still stand.

/Åse Maj
0 Likes
Not applicable
Related to this..Is there a way to force the DMA002 app to use GPDMA1 (as I am using GPDMA0 with a different configuration with the VADC)?
0 Likes