EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

tms470

Started by Don October 15, 2006
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.
1. Set up a simple array of chars 'a', 'b' through 'e' 

2. Write these
chars to the SCI port (RS232) via a memory-peripheral over DMA. 

3. 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...

4. 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.

5. 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
Why don't you try posting this to the Yahoo group at

http://tech.groups.yahoo.com/group/TMS470_ARM/


Don wrote:
> 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. > 1. Set up a simple array of chars 'a', 'b' through 'e' > > 2. Write these > chars to the SCI port (RS232) via a memory-peripheral over DMA. > > 3. 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... > > 4. 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. > > 5. 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

The 2024 Embedded Online Conference