Re: EDMA Event-Triggered Synchronization



edwin82@xxxxxxxxx wrote:
On Mar 22, 9:25 pm, Brad Griffis <bradgrif...@xxxxxxxxxxx> wrote:
edwi...@xxxxxxxxx wrote:
Hi,
In TI C671x or similar DSP, what is the function of Event-Triggered
Array Synchronization? Does it means that every times an interrupt
event arrived (eg EXT_INT) , the EDMA controller will transfer one
array?
In 2D mode with FS=0 you will get an array-synchronized transfer which
you described correctly, i.e. one array per sync event.

Besides the parameter for the channel such as OPT/SRC/FRMCNT,
what should be configured in order to enable event-triggered
synchronization ?
In order to synchronize to the correct event, in your case the external
interrupt, you need to write to the Parameter Set corresponding to that
event. Note that the parameter set gets modified during the transfer so
you will probably want to setup a second Parameter Set with the exact
same initial parameters such that the active parameter set always links
to that same reload (assuming you're going to do this 2D transfer more
than once).

You'll also need to enable the corresponding bit in the event enable
register EER.

Suppose I have an 2D array data[20][100], is it possible to configure
the EDMA to transmit the whole data[0] when the EXT_INT event is
triggered, transmit data[1] when another EXT_INT event is triggered,
and transmit one array when each EXT_INT event is trigger until
data[19] ?
Yes, that is possible. In fact, that specific scenario is shown in
Section A.3 of the EDMA Reference Guide, spru234c.

Thanks for your reply. Yes, I want to do this 2D transfer
continuously, the case is same as Figure A-36 in "spru234". Does it
means that I need to configure the channel as linked transfer?

Actually I have read the "spru234" and "spra636" before, and get
confused with the setting of "event triggered transfer request" and
"event triggered synchronization"! The reference guide said that a bit
in EER should be enabled in order to enable the corresponding event to
trigger the transfer request. For example, if I want to trigger the
transfer request by EXT_INT5, the EER should be configured as
"0x0020". If this is correct, then how can I enable the "event
triggered synchronization"? Is it simply configure the EER as "0x0010"
if I want the send one array when EXT_INT4 is triggered?

Thanks again!


For the 6713 GPINT4 maps to channel 4 and GPINT5 maps to channel 5. Therefore if you want an event triggered by GPINT4 then you need to program Parameter Set 4 with the correct transfer info and set bit 4 of the EER (i.e. EER |= 0x10;).

When the documentation talks about a "transfer request" that is talking about the specific hardware details of the EDMA. In your case when an event occurs (i.e. GPINT4) then if you have set it up as I mentioned above then a "transfer request" will automatically happen inside the EDMA causing one array of data to be transferred.

Note that Parameter Set 4 will be modified/updated by the EDMA during the transfers. For example, after the first sync event the source and destination addresses will be updated to point to the current location in the data and the counts will be correspondingly decremented. At the end of the complete transfer (all the arrays) the counts will all be zero. In order for your transfer to happen automatically forever you need to LINK to a second parameter set. When you link this tells the EDMA at the end of the ENTIRE transfer to copy the data from the linked set into the set that you're working on. In doing this your source address, dest address, counts, etc. will all be restored to their original values and your transfers can keep going forever.

Another good reference which I recommend you read is spra996. This is much shorter than the EDMA Reference Guide and gives a lot of good details about how the EDMA works.

Brad


.



Relevant Pages

  • Re: EDMA Event-Triggered Synchronization
    ... Array Synchronization? ... Note that the parameter set gets modified during the transfer so ... trigger the transfer request. ...
    (comp.dsp)
  • Re: EDMA Event-Triggered Synchronization
    ... Array Synchronization? ... the EDMA controller will transfer one ... Note that the parameter set gets modified during the transfer so ... trigger the transfer request. ...
    (comp.dsp)
  • Re: EDMA Event-Triggered Synchronization
    ... Array Synchronization? ... Does it means that every times an interrupt ... Note that the parameter set gets modified during the transfer so ...
    (comp.dsp)
  • Re: First message sent is lost (TCP)
    ... for now and it hasn't triggered. ... I had some problems first with message corruption that was very weird, ... byte array and clear the receiving array each time those problems ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Curve Fitting of Real Data
    ... (but the noise array is 128 elements), resulting in a 50 element array ... and is supposed to return 1000 points after the trigger, ... being passed to the fitting routine is still only 50 points long, ...
    (comp.lang.labview)