Re: Data Acquisition using AD9954, DMA, and ways to optimize TMS320C6713 usage while data collection is in progress
Using this method you have almost the entire duration of the buffer collection to service the interrupt because the EDMA is now running on the "other" buffer.
Don't forget to make the source and destination of the EDMA internal SRAM. When the EDMA subsystem and the CPU both request access to the external bus, the CPU always wins. This can cause EDMA events to be missed.
- Andrew E.
----- Original Message ----
From: Adolf Klemenz
To: William C Bonner ; DSPgroup
Sent: Tuesday, January 29, 2008 3:43:39 AM
Subject: Re: [c6x] Data Acquisition using AD9954, DMA, and ways to optimize TMS320C6713 usage while data collection is in progress
At 13:41 28.01.2008 -0800, William C Bonner wrote:
>When I tried to work so that the next set of ramp data was being
>collected while I processed the previous set, the result that I saw on
>an oscilloscope was sort of a stuttering set of ramps. I believe that
>the stuttering was caused by interrupts not being able to be serviced
>during some of the signal processing that I was doing.
This is quite likely on a C6x: most, if not all, of TI's optimized
processing functions from dsplib and imglib turn off interrupts during
execution. These functions make excessive use of software pipelining,
any interrupt would mess-up the SW-pipeline.
Small looped calculations like average, RMS, etc. may disable
too: if optimized, the code often fits into the 5 delay slots of the
branch instruction. Branch and its delay slots are not interuptable,
the entire loop will block interrupts.
You should use the -mi compiler switch (must iterate) to define a
how many cycles the code is allowed to block interrupts. If using
dsplib/imglib functions try processing smaller sets of data to minimize
>What I'm wondering is if there's a way I can program the DMA
>to string together a series of ramps without having to service
>in the main execution thread of the processor.
This depends on the size and arrangement of your data. It is possible
perform automatic sorting using the IDX field, but the "jump width" is
limited to +/-32k Bytes. Chaining can be used to start another EDMA
the current process is finished. Please look at the examples in
Adolf Klemenz, D.SignT
Check Out Industry's First Single-Chip, Multi-Format, Real-Time HD
Video Transcoding Solution for Commercial & Consumer End Equipment:
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
Check Out Industry's First Single-Chip, Multi-Format, Real-Time HD Video Transcoding Solution for Commercial & Consumer End Equipment: www.ti.com/dm6467