您好!
多次查看 hal.c HAL_setupPWMs()似乎比较 C 计数器比较子模块被错误地使 ADC 触发源和更高值的加载源。
ePWM 发生器 D 已配置 booster sites 1/2、而不是发生器 C。时基(TB)如何为未配置的发生器保持正确的时序触发 ADC 样本?
是否假定时基(TBCTR)与每个发生器负载计数时间(TBPRD)保持同步? 那么、COMPA=GENA、COMPB=GENB、COMPC=GENC、COMPD=GEND 分别相对于发生器/秒计数器的相位关系? 可能使用 CompC 将 ADC 采样窗口相位与实际电压和电流事件的关系更改为实际电压和电流事件? 在以下两种情况下、可能会触发 EPWM_SOC_TBCTR_D_CMPD 的时序优势、因此 InstaSpin mainISR ROM 调用会发生50µs μ s 边沿的同步启动?
奇怪的20Khz 调制50µs μ s 周期在 GPIO 监控器 mainISR()的上升沿之前开始。 没有书面解释为什么选择了比较器 C 而不是 D、有一个问题是为什么会来...
SDK 中的代码(hal.c)
//设置事件触发器选择寄存器(ETSEL) // COMP-C=DN 或 SOC_TBCTR=0 ePWM_DisableInterrupt (obj->pwmHandle[0]); ePWM_setADCTriggerSource (obj->pwmHandle[0]、 ePWM_SOC_A、ePWM_SOC_TBCTR_D_CMPC); //为 ADC 触发器写入 PWM 数据值 ePWM_setCounterCompareValue (obj->pwmHandle[0]、 ePWM_COUNTER_COMPARE_C、5);
