电机控制 SDK v2.01
50µs PRD 加载完整周期20Khz/μ s。
HAL_setupPWM ()似乎应将 PRD 设置为 USER_PWM_FREQ_kHz 频率的2倍。 然而、由于 ePWM 时钟缺省为50MHz 1/2 SYSCLK、PRD 加载2500、PRD 为20kHz。
2500个周期 x 50MHz = 20kHz 不是周期的1/2、而是一个完整周期。 1250个周期 x 50MHz = 40kHz 或 USER_PWM_FREQ_kHz = 20kHz 周期的1/2。 一些供应商将 SVM 的载波周期降低到10kHz 或更低、这是质疑 PRD 的主要原因。
1.为什么名为1/2个周期的变量会加载完整的 PRD 周期?
2 SVM 占空比需要1/2的 PRD 周期负载计数才能正常工作、还是需要完整的 USER_PWM_FREQ_kHz 周期计数?
/* set 40kHz half periods, TBPRD:5000/2 = 2500ticks, 25µs */ uint16_t halfPeriod_cycles = (uint16_t)(systemFreq_MHz * pwmPeriod_usec / (float32_t)2.0); //100Mhz // since EPWM is set up/down counter, the period register is // set one-half the desired TBPRD period as starting duty cycle EPWM_setTimeBasePeriod(obj->pwmHandle[0], halfPeriod_cycles); //2500 ticks 25µs