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.

TMS320F28035: Complementary PWM in Trip-Zone

Part Number: TMS320F28035
Other Parts Discussed in Thread: CONTROLSUITE

Dear All,

I am trying to implement current controlled synchronous buck converter. I have driven the BuckFET pretty fine but I am having trouble with driving SYNCFET. How can I set dead-time between EPwmxA and EPwmxB. I would be appriciated if one can help me.

Thanks in advanced.

Merih

  • Hi Merih,

    Did you check the ePWM_deadband example from controlSuite?
    C:\ti\controlSUITE\device_support\f2803x\v130\DSP2803x_examples_ccsv5\epwm_deadband

    Regards,
    Gautam
  • Hi Gautam,

    I checked it now. Since it's current mode controlled system, I have used cycle-by-cycle trip zone method. Actually I thought that I can force SYNCFET on with the help of trip zone interrupt but still I couldn't make it. I am going to attach related parts of the code. I guess wrong part is on the interrupt but still working on it. Maybe you can understand what's wrong. If you have a look at it, that would be awesome.

    Thanks for the reply

    Regards,
    Merih

    ////EPwm CBC Trip Configuration
    (*ePWM[n]).DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP2OUT;
    (*ePWM[n]).TZDCSEL.bit.DCAEVT2 = TZ_DCAH_HI;
    (*ePWM[n]).DCACTL.bit.EVT2SRCSEL = DC_EVT2;
    (*ePWM[n]).DCACTL.bit.EVT2FRCSYNCSEL = DC_EVT_ASYNC;
    (*ePWM[n]).TZSEL.bit.DCAEVT2 = 1;
    (*ePWM[n]).TZCTL.bit.TZA = TZ_FORCE_LO;
    (*ePWM[n]).TZEINT.bit.DCAEVT2 = 1;

    /////Trip zone interrupt configuration
    PieVectTable.EPWM1_TZINT = &SyncFetUp;
    PieCtrlRegs.PIEIER2.bit.INTx1 = 1;
    IER |= M_INT2;

    Force SyncFet on
    interrupt void SyncFetUp()
    {
    EALLOW;
    EPwm1Regs.AQSFRC.bit.RLDCSF=0x3; /////LOAD IMMEDIATELY
    EPwm1Regs.AQSFRC.bit.ACTSFB=0x2; ///SET HIGH
    EPwm1Regs.AQSFRC.bit.OTSFB=1; ////INITIATE
    PieCtrlRegs.PIEACK.all = PIEACK_GROUP2;
    EDIS;
    }