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: 28035比较器配置

Part Number: TMS320F28035
Other Parts Discussed in Thread: C2000WARE

用的F28035写的过流保护,发现当过流时,必须在管子脉冲为下降沿时才会将脉冲封掉,下面是比较器与epwm配置程序,怎么样修改才能让在过流时立马将脉冲封掉,而不是等待该时刻脉冲关闭时封掉。

void InitComp3()           //用于过流保护
{
     EALLOW;
     Comp3Regs.COMPCTL.bit.SYNCSEL = 1;          //比较器输出同步传送
     Comp3Regs.COMPCTL.bit.QUALSEL = 2;          //持续四个系统时钟
     Comp3Regs.COMPCTL.bit.CMPINV =0;            //比较器输出反相关闭
     Comp3Regs.COMPCTL.bit.COMPSOURCE = 0;       //反相输入源 选择DAC
     Comp3Regs.COMPCTL.bit.COMPDACEN = 1;        //使能DAC
     Comp3Regs.DACVAL.all = 868;                //0~1023对应0~3.3
     EDIS;
}
void EPwm6Set(void)
{
// Setup TBCLK
    EPwm6Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;    // 增计数
    EPwm6Regs.TBPRD =e6PRD ;                 // 设置计时器周期   20kHz
    EPwm6Regs.TBCTL.bit.PHSEN = TB_DISABLE;    // 禁用相位加载
    EPwm6Regs.TBPHS.half.TBPHS = 0x0000;       // 相位为0
    EPwm6Regs.TBCTR = 0x0000;                  // 清除计数器
    EPwm6Regs.TBCTL.bit.HSPCLKDIV = 0x0;   // Clock ratio to SYSCLKOUT
    EPwm6Regs.TBCTL.bit.CLKDIV = 0x0;

// Setup shadow register load on ZERO
    EPwm6Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
    EPwm6Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
    EPwm6Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
    EPwm6Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;

// Set Compare values

    EPwm6Regs.CMPA.half.CMPA =e6cmpa;
    EPwm6Regs.CMPB = e6PRD-e6cmpa;                    // Set Compare B value

    EPwm6Regs.AQCTLA.bit.ZRO = AQ_SET;          // 计数到0时PWM1A输出高电平
    EPwm6Regs.AQCTLA.bit.CAU = AQ_CLEAR;        // 增计数到比较值A时PWM1A输出低电平
    EPwm6Regs.AQCTLB.bit.ZRO = AQ_CLEAR;        // 计数到0时PWM1B输出低电平
    EPwm6Regs.AQCTLB.bit.CBU = AQ_SET;          // 增计数到比较值B时PWM1B输出高电平

    EALLOW;
    EPwm6Regs.DCTRIPSEL.bit.DCAHCOMPSEL = DC_COMP3OUT; //COMP3OUT 输入
    EPwm6Regs.TZDCSEL.bit.DCAEVT1= 2;                  //0:高阻状态,1:
    EPwm6Regs.DCACTL.bit.EVT1SRCSEL = 0;               //DCAEVT1 Source Signal
    EPwm6Regs.DCACTL.bit.EVT1FRCSYNCSEL = 1;           //DCAEVT1 Force Async Signal
    EPwm6Regs.TZSEL.bit.DCAEVT1= 1;                   //One-shot DCAEVT1 select
    EPwm6Regs.TZCTL.bit.TZA =2;                      //当外部触发事件发生时,定义EPMxA所采取的动作0:高阻态,1:高电平,2:低电平,3:保持
    EDIS;

}