尊敬的工程师您好:
今天在使用TMS32F28335的EPWM引脚进行配置互补驱动时,在配置完GPIO和EPWM后,DSP上电瞬间的第一个脉冲什么不是按照CMP值进行发波呢?无论是直接将GPIO复用,还是先配置为普通IO再复用,互补的两个EPWM引脚在上电瞬间的第一个脉冲都不会发生改变?这是为什么呢?该如何处理呢?
如图所示,绿色为EPWM2A红色为2B,后面互补的脉冲均符合期望配置,但是第一个脉冲好像无法控制?
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.
尊敬的工程师您好:
今天在使用TMS32F28335的EPWM引脚进行配置互补驱动时,在配置完GPIO和EPWM后,DSP上电瞬间的第一个脉冲什么不是按照CMP值进行发波呢?无论是直接将GPIO复用,还是先配置为普通IO再复用,互补的两个EPWM引脚在上电瞬间的第一个脉冲都不会发生改变?这是为什么呢?该如何处理呢?
如图所示,绿色为EPWM2A红色为2B,后面互补的脉冲均符合期望配置,但是第一个脉冲好像无法控制?
您好,
您遇到的问题是由于 ePWM 模块在 TMS320F28335 DSP 上的初始化方式所致。
当 DSP 上电时、ePWM 模块并未立即准备好根据 CMP (比较)值产生脉冲。 相反、ePWM 模块需要完成一系列初始化步骤、然后才能产生有效脉冲。
这种行为的原因之一是 ePWM 模块使用影子寄存器来存储 CMP 值。 影子寄存器在每个 PWM 周期结束时更新、新的 CMP 值直到下一个 PWM 周期才有效。
DSP 上电时、ePWM 模块复位、并且影子寄存器不会立即更新。 因此、ePWM 模块产生的第一个脉冲可能不会反映所需的 CMP 值。