尊敬的 C2000专家:
在 Vienna PFC 代码中、主从 PWM 之间存在最小相位。 TI 告诉我、这是为了补偿将 SYNC 信号从主器件传播到从器件需要2个周期的事实。
我遵循了这一准则、但在主器件和从器件之间仍然有5~6 ns。 我的 PWM 频率当前为200kHz、您能不能帮助我知道如何将延迟补偿为接近0ns?
void Vienna_HAL_setupPWM (uint32_t base1、uint32_t BASE2、uint32_t base3、
uint16_t PWM_PERIOD_TICKs)
{
VIENNA_HAL_CONFIGurePWMUpDwnCnt (base1、PWM_PERIOD_TICK);
VIENNA_HAL_CONFIGurePWMUpDwnCnt (BASE2、PWM_PERIOD_TICK);
VIENNA_HAL_CONFIGurePWMUpDwnCnt (base3、PWM_PERIOD_TICK);
//
//将 PWM 1配置为主器件、将第2相配置为从器件、并将第3相配置为从器件
//让它从 PWM1传递 SYNC IN 脉冲
//
ePWM_DisablePhaseShiftLoad (base1);
ePWM_setSyncOutPulseMode (base1、ePWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);
ePWM_enablePhaseShiftLoad (BASE2);
ePWM_setSyncOutPulseMode (BASE2、ePWM_SYNC_OUT_PULSE_ON_SOFTWARE);
ePWM_setPhaseShift (BASE2、2);
ePWM_setCountModeAfterSync (BASE2、ePWM_COUNT_MODE_UP_After_SYNC);
ePWM_enablePhaseShiftLoad (base3);
ePWM_setSyncOutPulseMode (base3、ePWM_SYNC_OUT_PULSE_ON_SOFTWARE);
ePWM_setPhaseShift (base3、2);
ePWM_setCountModeAfterSync (base3、ePWM_COUNT_MODE_UP_After_SYNC);
}