[quote user="Clemens Ladisch"] Configure the DMA controller to raise an interrupt after every byte, or just use polling. In any case, DMA has the advantage that it runs even when an interrupt handler is currently executing. So even in the worst case, you have increased the buffer size from one byte (RXBUF) to multiple bytes. [/quote] I spend significant time on this, and used DMA as starting point. DMA is made for data transfer with constant / fixed length between one location / peripheral to another. For transfer where receiver (in my case MSP430) don't know anything about data length (so it can be 3 bytes or 3 MBytes over UART at once, on high rate), I didn't found DMA as perfect solution for this. Also, DMA foreach transfer will stop (or slowdown) MSP430 CPU, and in some cases this is not acceptable behavior.
↧