Hi,
I am currently attempting to use the DMA channels in the TMS470 (arm7dtmi core product from TI). I can't seem to get it working quite right. Here is what I'm trying to do.
- Set up a simple array of chars 'a', 'b' through 'e'
- Write these chars to the SCI port (RS232) via a memory-peripheral over DMA.
- So far I've had limited success, 1 character seems to work, but when I set the DMA transaction count above 1 (to 2 or 3 or 5) I get stuff like addddbddddcddddddddaddddbddddcddddeddddd on the serial port. Also when I force a busy sleep inside the DMA interrupt I would get something like adadadadadadad...
- All this to me seems to indicate that the DMA isn't pausing to wait for the next character to transfer out of the RS232 before it initiates a new DMA transfer.
- I'm trying to do this because I need to transfer large blocks over RS232 from memory blocks because there is no buffering on the SCI (RS232) port, so that I don't take so many hits on a 115kBaud connection out. Does anyone have any experience this device they care to share? I'm sort of at a loss to figure out why (apparently) the DMA isn't pausing between each incremental block transfer for the completion of an RS232 port write. Oh and I do have memory-memory block transfers working just fine, but not out the RS232. Thanks! Don