Facing Difficulties in Data Transfer over UART wit

2019-09-05 00:50发布

问题:

I am collecting 2.4KB(600 bytes * 4) of data from sensors over my MSP430 Controller. And I am using dma to transfer that data over UART to my Linux Processor.Transfer Happens at every 100ms Timer.

My DMA setting is as below.

DMACTL0 = DMA0TSEL__UCA0TXIFG;
DMA0SA  = &buff;
DMA0DA  = &UCA0TXBUF; 
DMA0SZ  = 600;                      // Block size in bytes
DMA0CTL = DMADT_4 | DMASBDB| DMASRCINCR_3 | DMAIE| DMALEVEL_L; // Rpt, inc
DMA0CTL|= DMAEN;

and my ISR for DMA is as below,

 __interrupt void DMA_VECTOR_ISR(void)
 {
     DMA0CTL &= ~DMAIFG;
     DMA_Doneflag = 1;
 }

When I initiate transfer, at first I get to receive 600 bytes( I use breakpoint in my IDE to check about size at every DMA trigger). And It comes 600 bytes if I do repeatedly with break point. When I remove break point and Keep transfer in long run, I have noticed(From the log file on Linux machine) data does not comes 600 bytes everytime. Manytimes it's less than size defined.

标签: uart msp430 dma