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.

[参考译文] TMS320F280049C:硬开关 H 桥中使用的 HRPWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1646062/tms320f280049c-hrpwm-used-in-a-hard-switched-h-bridge

器件型号: TMS320F280049C

我将在硬开关 H 桥中使用 F280049C。

我从 HRPWM_Ex9_dutyhr_updown_deadcide_sfo.c 开始谈起

计数器模式=向上 — 向下

输出 A

ePWMxA 时基计数器等于零= 将输出引脚设置为高电平

ePWMxA 时基计数器向上等于 COMPA = 将输出引脚设置为低电平

OutputB

ePWMxB 时基计数器等于 PERIOD =将输出引脚设置为高电平

ePWMxB 时基计数器向下等于 COMPB =将输出引脚设置为低电平

通道= CMPAHR/CMPBHR 或 TBPRDHR 控制 MEP 边沿的控制模式

边沿模式=下降沿

当我运行代码输出时、A 会平滑地遍历占空比、但输出 B 不会。

输出 B 不会定期降低脉冲宽度、而是会跳变。

即 1.020us、1.000us、1.002us、1.004us、1.006us、 1.008us、1.010us、0.990us、0.992us。 等

低 8 位似乎在高位的相反方向计数。

因此、我补充了将它发送到的低 8 位  

HRPWM_setCounterCompareValue 函数。 这似乎是有效的。
即 1.020us、1.018us、1.016us、1.014us、1.012us、 1.010us、1.008us、1.006us、1.004us。 等
 
这是为什么呢? 我是否错过了配置中的设置? 是 1 的补偿还是 2 的补偿?
 
 
谢谢、
 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    您更改了放置 PWM 边沿的动作限定器事件。 此行为是预期行为、并且是由于 AQ 配置下发生的方向反转所致:

    通道 A:  

    • 在 CMPA 向上计数时清除低电平(下降沿)
    • 较高的 MEP 意味着边沿在较晚的时间被放置、从而导致脉冲更宽

    通道 B:

    • CMPB 向下计数时置位低电平(下降沿)
    • 较高的 MEP 意味着 向下计数在时间上更早触发、从而导致脉冲更窄  

    MEP 硬件始终 其子周期偏移添加到比较寄存器值。 对于向上计数、这会及时将边沿向前移动。 在向下计数时、添加到 CMPB 会使比较事件在下降期间更早触发、从而产生相反的效果。

    这会产生测量的锯齿:粗位正确步进、但精细位对抗粗调、从而生成。 每个粗步进都会下降通道 B、然后 MEP 重新计数、然后另一个粗步进再次下降。

    此外、1 的补码正确。  

    此致、

    Allison