ZHDA102 March 2026 MSPM0G3519
生成输入 PWM 信号精确副本的功能在现代电子系统中发挥着重要作用,尤其是在需要安全冗余验证的应用中。该方法在双通道电机控制系统中广泛实现;在此类系统中,信号验证和故障检测对于运行安全至关重要。
在工业和安全关键型应用中,PWM 信号复制可实现强大的冗余控制路径和持续的系统监控。该技术涉及捕获输入 PWM 信号的特性并生成完全相同的输出信号,从而保持精确的时序关系。
此功能在电力电子应用中尤为重要,因为在这些应用中,同步开关控制和多个相位对齐输出至关重要。该实现允许信号缓冲、再生和扇出到多个子系统,同时保持信号完整性和抗噪性。
在电机控制应用中,这种方法可实现冗余的栅极驱动信号和双通道安全系统,对于容错运行至关重要。该系统会持续监控和验证信号,从而提供实时验证和性能监控功能。这在安全性和可靠性至关重要的工业设备中尤其重要。
该实现简单但功能强大,利用计时器捕获功能读取输入 PWM 参数并生成完全相同的输出信号。这可确保精确复制周期值和占空比值,从而在整个系统中保持信号完整性。由此产生的解决方案具有全面的优势,包括信号验证、安全冗余、分布式控制功能和稳健的系统监控功能。
执行以下步骤,可将计时器实例配置为生成基于反馈的 PWM:
/* Configuration Sequence to Generate Feedback-based PWM */
static const DL_TimerA_ClockConfig gCAPTURE_0ClockConfig = {
.clockSel = DL_TIMER_CLOCK_BUSCLK,
.divideRatio = DL_TIMER_CLOCK_DIVIDE_1,
.prescale = 0U
};
static const DL_TimerA_CaptureConfig gCAPTURE_0CaptureConfig = {
.captureMode = DL_TIMER_CAPTURE_MODE_EDGE_TIME_UP,
.period = CAPTURE_0_INST_LOAD_VALUE,
.startTimer = DL_TIMER_STOP,
.edgeCaptMode = DL_TIMER_CAPTURE_EDGE_DETECTION_MODE_EDGE,//Enable Edge Capture on both rising and falling edges for CC0
.inputChan = DL_TIMER_INPUT_CHAN_0,
.inputInvMode = DL_TIMER_CC_INPUT_INV_NOINVERT,
};
SYSCONFIG_WEAK void SYSCFG_DL_CAPTURE_0_init(void) {
DL_TimerA_setClockConfig(CAPTURE_0_INST,
(DL_TimerA_ClockConfig *) &gCAPTURE_0ClockConfig);
DL_TimerA_initCaptureMode(CAPTURE_0_INST,
(DL_TimerA_CaptureConfig *) &gCAPTURE_0CaptureConfig);
DL_TimerA_setCounterControl(CAPTURE_0_INST,DL_TIMER_CZC_CCCTL0_ZCOND,DL_TIMER_CAC_CCCTL0_ACOND,DL_TIMER_CLC_CCCTL0_LCOND);
DL_TimerA_enableInterrupt(CAPTURE_0_INST , DL_TIMERA_INTERRUPT_CC0_UP_EVENT);
CAPTURE_0_INST->COUNTERREGS.CCACT_01[1]=0x00018000;//Enable CC output Toggle for Secondary CC event. Secondary Event for CC1 will be generated when CC0 captures an edge
DL_TimerA_setCaptureCompareValue(CAPTURE_0_INST, 0, DL_TIMER_CC_1_INDEX);
DL_TimerA_enableClock(CAPTURE_0_INST);
DL_TimerA_setCCPDirection(CAPTURE_0_INST , DL_TIMER_CC1_OUTPUT);
}上述配置适用于基准 PWM 的周期和占空比不断发生变化的情况。
图 5-1 仅基准 PWM 的占空比发生变化
图 5-2 基准 PWM 的占空比和时间周期均发生变化