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.

[参考译文] TMS320F28035:处于向上-向下计数模式的 HRPWM 在 TBCTR=0附近产生杂散脉冲

Guru**** 2466550 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1489698/tms320f28035-hrpwm-in-up-down-count-mode-produces-spurious-pulse-around-tbctr-0

器件型号:TMS320F28035

工具与软件:

各位专家、您好!

我有一个应用采用1类 ePWM、以向上/向下双向计数模式运行、必须精确控制脉冲宽度。 脉冲必须以 PRD 为中心以实现同步、因此使用向上计数模式会出现问题。

EPWMxA 在 CMPA 匹配递增计数时变为高电平、在 CMPA 递减计数时变为低电平。 HRPWM 在 CMPA 上运行、仅在下降沿上、因为 MEP 只能延迟脉冲转换。  

在向上/向下计数模式下、T_PWM = 2 * PRD * T_TBCLK。

由于2倍乘法器、HRPWM 自动转换在此应用中无法正常工作:CMPA 的小数部分代表2 * T_TBCLK 的小数部分。 当小数部分为0.999999时、CMPAHR 中需要2个 MEP_SCALE_FACTOR 微步进、但自动转换将产生1个 MEP_SCALE_FACTOR。

禁用自动转换的情况下、我在代码中执行所有计算、并以一条指令写入32位 CMPA:CMPAHR 寄存器。

脉冲宽度设置正确、一切正常工作、但有一点除外:

在写入 CMPA:CMPAHR 寄存器时、 TBCTR=0附近会出现寄生干扰。 它恰好是一个 T_TBCLK 或一个 T_SYSCLK 宽。 然后、PWM 正常运行、直到下一次 CMPA 更新。 似乎只有当 CMPA 的粗略部分发生变化时才会出现干扰。

LOADAMODE 和 HRLOAD 均设置为根据论坛上的说明从 PRD 和零上的影子加载。 更改这些设置无效-当 CMPA/粗调更改时、干扰始终存在。

启用 AUTOCONV 后、波形是干净的、但分数占空比是应有值的一半、因为只有脉冲的下降沿会延迟、自动转换不考虑向上/向下计数模式。

禁用 HRPWM 后、不会出现干扰。

有什么建议吗?