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.

Changing CLA task on TMS320F28377D

Guru 16800 points
Other Parts Discussed in Thread: TMS320F28377D

Hello,

Please give me advice to me about changing CLA task on TMS320F28377D.

On page 616 in datasheet, the following is described:
For example, task 1 (MVECT1) can be set to trigger on EPWMINT1 by writing 36 to
DmaClaSrcSelRegs.CLA1TASKSRCSEL1.bit.TASK1. To disable the triggering of a task by a
peripheral, the user must set the DmaClaSrcSelRegs.CLA1TASKSRCSELx[TASKx] bit field to 0. It
should be noted that a CLA task only triggers on a level transition (an edge) of the configured interrupt
source.

I understand I can disable the trigger of TASK, and I have a question.
Can I assign the disabled trigger to another TASK dynamically?
For example, the trigger on EPWMINT1 of TASK1 is changed to TASK2 dynamically (without stopping the EPWMINT1 interrupt).

If it is not recommended to change the trigger dynamically without stopping the interrupt, please let me know the following suggestion is correct.

In case of the ePWM interrupt, the interrupt is generated periodically.
Therefore, I can estimate the time that the interrupt doesn't exist.
For example, shortly after the ePWM interrupt handle execution, the TASK changing procedure can be executed, I think.

Best Regards,

Nomoto

  • Nomoto,

    Looks like you want to use the same trigger to start CLA TASK1 or CLA TASK2 at different times and able to change this dynamically.
    I think - this can be done. But you need to have complete control on the trigger timing and CLA execution for predictable behavior.
    Better way is to have the complete code in single Task and execute portion of the code (corresponding to task 1 or task 2) conditionally, depending on which portion of the code you need to run on a given trigger.
    That way you don't have to worry about switching between the task trigger task dynamically.

    -Bharathi