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.

CBC trip zone问题

请问需要怎么设置CBC才能实现故障信号消失后,pwm恢复正常,如下设置可以吗

EALLOW;
EPwm2Regs.TZSEL.bit.CBC1 = 1;
EPwm2Regs.TZSEL.bit.CBC2 = 1;

EPwm2Regs.TZCTL.bit.TZA = TZ_FORCE_HI;
EPwm2Regs.TZCTL.bit.TZB = TZ_FORCE_LO;

EDIS;

EPwm2Regs.TBPRD = 6000; // Set timer period
EPwm2Regs.TBPHS.half.TBPHS = 0x0000; // Phase is 0
EPwm2Regs.TBCTR = 0x0000; // Clear counter

// Setup TBCLK
EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; // Count up
EPwm2Regs.TBCTL.bit.PHSEN = TB_DISABLE; // Disable phase loading
EPwm2Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4; // Clock ratio to SYSCLKOUT
EPwm2Regs.TBCTL.bit.CLKDIV = TB_DIV4; // Slow just to observe on the scope

EPwm2Regs.CMPA.half.CMPA = 3000;

EPwm2Regs.AQCTLA.bit.CAU = AQ_SET; // Set PWM2A on CAU
EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR; // Clear PWM2A on CAD

EPwm2Regs.AQCTLB.bit.CAU = AQ_CLEAR; // Clear PWM2B on CAU
EPwm2Regs.AQCTLB.bit.CAD = AQ_SET; // Set PWM2B on CAD

  • CBC的意思是cycle-by-cycle当在一个PWM周期中被触发后,如果在下个周期TZ信号消失,PWM会自动回复正常。

    不需要额外的设置。

    Cycle-by-Cycle (CBC):
    When a cycle-by-cycle trip event occurs, the action specified in the TZCTL register is carried out
    immediately on the EPWMxA and/or EPWMxB output. Table 19 lists the possible actions. In addition,
    the cycle-by-cycle trip event flag (TZFLG[CBC]) is set and a EPWMx_TZINT interrupt is generated if it
    is enabled in the TZEINT register and PIE peripheral.
    The specified condition on the pins is automatically cleared when the ePWM time-base counter
    reaches zero (TBCTR = 0x0000) if the trip event is no longer present. Therefore, in this mode, the trip
    event is cleared or reset every PWM cycle. The TZFLG[CBC] flag bit will remain set until it is manually
    cleared by writing to the TZCLR[CBC] bit. If the cycle-by-cycle trip event is still present when the
    TZFLG[CBC] bit is cleared, then it will again be immediately set.

  • The specified condition on the pins is automatically cleared when the ePWM time-base counter
    reaches zero (TBCTR = 0x0000) if the trip event is no longer present. Therefore, in this mode, the trip
    event is cleared or reset every PWM cycle.

    请问您 这两句话 没看懂 既然是当计数器为0时才判断trip event是否还存在 怎么就“因此,每个PWM周期就清除一次” 此二者有因果关系吗????计数器要变为0,应该不止一个PWM周期吧 谢谢

  • 可不可以这样理解,每个周期trip event只会动作一次,置位或者清除,一旦这个周期的event不存在,就会清除上一个周期的trip event。
x 出现错误。请重试或与管理员联系。