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.

DMA transfer Increment Problem--Every other byte missing!

Other Parts Discussed in Thread: MSP430F5326

Hello, 

I am using DMA block transfer to transfer a block of data via SPI interface on MSP430F5326. I initialize DMA transfer as follows:

unsigned char master_packet[SIZE];
...
// fill master_packet with nonzero data
...
DMA2CTL &= ~DMAEN;
DMACTL1 = DMA2TSEL4 + DMA2TSEL1 + DMA2TSEL0;												
DMA2CTL |= DMADT0 + DMASRCINCR1 + DMASRCINCR0 + DMADSTBYTE + DMASRCBYTE + DMAIE; 
DMA2SA = master_packet;
DMA2DA = &UCB0TXBUF;
DMA2SZ = SIZE;
...
// trigger transfer
DMA2CTL |= DMAEN; 					
UCB0IFG &= ~UCTXIFG;
UCB0IFG |=  UCTXIFG;
 				

The problem is that when I use a scope to verify the data coming from SPI, every other byte is dropped for some reason! If I initialize the master_packet as follows:

master_packet[0] = 0x92;
master_packet[1] = 0x42;
master_packet[2] = 0xF0;
master_packet[3] = 0x66;

Only the bytes 0x42 and 0x66 are actually transmitted...I made sure that DMASRCBYTE and DMADSTBYTE were set so that the DMA would treat the memory as bytes instead of words... what am I missing?

**Attention** This is a public forum