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.

Secondary Master Selection in F28075

Hi Guys,

CCS v 6.1.3.0034 (compiler version = TI v15.12.1.LTS)

TMX320F28075 Control Card

control Suite v 3.4.0

I have configured the DMA to read and store all eight SDFM Data values. So I set the Secondary Master for Peripheral 1 (has SDFM and ePWM) as DMA with the following code :

    EALLOW;
    CpuSysRegs.SECMSEL.bit.PF1SEL = 1;
    EDIS;

Now the CLA has no ownership for Peripheral 1. But I need to set the time period values and CMPA and CMPB values for ePWM modules using CLA. Is it possible?

  • Prakash,

    Unfortunately, you have to choose between either CLA access or DMA access to the peripheral frame.

    Maybe you can use the CLA to buffer the SDFM results instead of the DMA?  The CLA is easily configured to act like a smart DMA.  The weakness is the available RAM it has access to (compared to the DMA).

    Regards,

    David

  • Hi David,
    In my case, all eight tasks of CLA runs within 10 us, but my SDFM configuration provides data every 23 us and handled by the DMA and CPU. The SDFM data rate is the reason why I had to switch to DMA.
    Please explain "use the CLA to buffer the SDFM results instead of the DMA".
    Thank You.
  • Hi Prakash,

    Prakash Kumar Thulasi Kumar said:

    In my case, all eight tasks of CLA runs within 10 us, but my SDFM configuration provides data every 23 us and handled by the DMA and CPU. The SDFM data rate is the reason why I had to switch to DMA.
    Please explain "use the CLA to buffer the SDFM results instead of the DMA".

    I was simply suggesting using a spare CLA task, triggered by the SDINT, to read the results and buffer them in memory.  If you are already using all 8 CLA tasks, they you seemingly do not have one available for this.  I suppose you could also use the CPU to buffer the SD results.  23 us is not a horrible rate.

    - David

  • Hi David,

    I can edit a CLA task, no problem. Currently CLA Task 1 is triggered by Timer0 every 10 us. The main function of CPU runs every 100us in Timer2 ISR and every time the CPU takes the updated value stored by DMA. Both CLA and CPU has their own PI Controller and is time based.

    23us is not a horrible rate, agreed. But buffering the SDFM Data every 10us using CLA doesn't seem correct and buffering every 100 us in CPU will give outdated data.
  • Hi Prakash,

    What I was suggesting was triggering a CLA task using the SDxINT trigger at the 23 uS rate. You would buffer the SD data in this task. Alternately, you could have the CPU interrupted at the 23 uS rate and have it buffer the data.

    Regards,
    David