This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28P650DK: DMA trigger source event

Part Number: TMS320F28P650DK
Other Parts Discussed in Thread: C2000WARE

Hi TI Support,
I need your help to start in automatic way DMA channels.
Below, I'm going to describe my idea to do that.

Looking at page 1698 of TMR rev B, on table 10-1 I see the events ADCAEVT and ADCAINTx_DMA as DMA trigger sources coming out from ADC A.

I want to start the DMA module as result of the "ADC A end of conversion" event and based on my understanding,
the event ADCAINTx_DMA looks to be the one that fits my choice.
Is my reasoning correct ?
Looking figure 18-1, the EOCx is an input for the block "Interrupt Block(1-4)" however I'm not able to select the ADC registers, I'm refering to Table 18-64, belonging to the "Interrupt Block(1-4)".
Please can you help me ?


Thank you very much
Ettore

  • Hi Ettore,

    You can select either ADCEVT or the ADCINTx as trigger for your DMA. Please refer to the examples in the C2000Ware for the generation of the ADVCEVT/ADCINT. You can then select the appropriate trigger at the DMA end to start the DMA transfers based on the trigger you wish to select. 

    Hope this answer resolved your query. 

    Thanks & Regards

    Pramod 

  • Hi Pramod,

    I’m sorry but I haven’t found an answer to my question, on C2000 Ware examples.

    Let me describe what I’m looking for.

    Table 10-1 shows the DMA trigger sources.

    The sources whose index is 1 up to 5, I link to the events coming out from the block “Interrupt Block (1-4)” and “Post Processing Block (1-4)”,   since the name of the signals on the table is the same of the ones I find on figure 18-1.

    Registers ADCINTSEL1N2 and ADC INTSEL3N4, configures the interrupt ADCINT1 up to ADCINT4.

    The inputs to ADCINTSEL1N2 register, are EOC[0:15]  and OSINT[1:4], as shown on figure 18-1 and figure 18-22.

    However, as shown on figure 18-22, ADCINT1 up to ADCINT4 are routed to the PIE and not to DMA.

    Regarding the event ADCINT1_DMA, .., ADCINT4_DMA on which register are these described ?

    I'm not able to find these on TRM, doc SPRUIZ1A.

    Let me continue with my reasoning.

    According to figure 18-23 the event ADCEVT1, .., ADCEVT4 comes out from the PP block.

    Going into details, the event ADCEVTx is related to “Zero crossing detection logic” and “Threshold compare” applied to ADCPPBxResult and/or ADCPPBxSum and/or ADCPPBxPSum registers as shown on figure 18-25.

    Here, a clear pulse is used to clear the event, as stated on register ADCPPB1CONFIG and shown on figure 18-25.

    Register ADCEVTSTAT describes the conditions I can use to generate the event ADCEVT1, .., ADCEVT4.

    Looking the conditions, these are no related to a generic SOC ending, that take places before, a new start of conversion related the entire post processing process.

    Am I wrong ?

    Next picture shows what I would like to do, and what I'm looking for.

    Here an 8 sample oversampling process triggered by Epwm SOC and Repeater block.

    Last "start of conversion" by repeater module, the 8th                                    

    First "start of conversion" by Epwm SOC , the first

    I would like to start the DMA channels, after the last ADC conversion activated by repeater block SOC8 and before a new post processing process, started by Epwm SOC.

    The picture shows the time slot where I would start the DMA module: refer to the red color.

    Is it possible routing inside signals in order to do that, without firmware allocation nor new peripheral interrupt ?

    Many thanks

    Ettore

  • Hi Ettore,

    I'll need sometime to look into your reasoning. I'll get back with a response by end of the week as I am out for most part of this week and the next. Thanks in advance for your patience. 

    Thanks & Regards,

    Pramod 

  • Hi Pramod,

    take your time, no problem from my side.

    I think I understood the misunderstanding:

    I guess that the signals ADCINT1-4 and ADCINT1-4_DMA represent the same events that are routed to two different peripherals, PIE and DMA.

    For instance, ADCINT1 and ADCINT1_DMA  are the same event:

    ADCINT1 to the PIE

    ADCINT1_DMA  to DMA

    Please can you confirm ?

    If my understanding is correct, please disregard my previous explanation.

    Thanks

    Ettore

  • Hi Ettore,

    Your understanding is correct. ADCINT and ADCINT_DMA are both same signals routed to both PIE and DMA. Same goes for ADCEVT actually. 

    Thanks & Regards

    Pramod