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:高精度 ePWM TBPRD

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/793036/tms320f28035-high-precision-epwm-tbprd

器件型号:TMS320F28035

有两个 H 桥、第一个臂由 CH1/CH2驱动、第二个臂由 CH3/CH4驱动。两个 H 桥的频率相同、但死区不同、死区在两个臂之间切换。

如下图所示、前驱动器是死区时间大于 CH3/CH4的 CH1/CH2、而第二驱动器是死区时间大于 CH1/CH2的 CH3/CH4。

从波形图中可以看出、函数已经实现、但调试过程中存在这样的问题。

在调试过程中、会出现以下波形、即开关后的第一个 CH1/EPWM1A 只有一半的驱动波形、随后的波形正常。

尝试分析 EPWM1A 出现这种现象的原因、因为 EPWM1A 和 EPWM3A 的配置是完全相同的、并且后 EPWM1A 波也是正确的、因此不清楚为什么第一个驱动器出现这种现象的一半。

最后、修改 EPwm1Regs。 HRPCTL。 位。 HRPE = 1;EPwm1Regs。 HRPCTL。 位。 HRPE = 0;获得以下波形

1、目前使用 TMS320F28035PN。

通过配置寄存器 AQCTLA/AQCTLB 可实现封锁和恢复,即在每次封锁或恢复之前配置 AQCTLA/AQCTLB。

我们在固定频率开环下实现死区开关。 这两个波形由同一环路计算、但在发出波形后、会根据波形配置对波形量进行微调。 以 EPWM1A 和 EPWM3A 为例、它们都是 EPwmRegs.AQCTLA.bit.CAD = AQ_SET;EPwmRegs.AQCTLA.bit.CAU = AQ_CLEAR;如果环路计算结果为 CMP1、则为递增。 ePWM 3A 的死区时间为 CMP delta、这需要 ePWM 1Regs。 CMPA = CMP 1 - CMP 差值、ePWM 3Regs。 CMPA = CMP 1。 相反、ePWM 3A 的死区时间大于 ePWM 1A、ePWM 1Regs 的死区时间。 CMPA = CMP 1、ePWM 3Regs。 CMPA = CMP 差值。

目前,所测试的现象是:在 EPwm1Regs 配置下。 HRPCTL。 位。 HRPE = 1时、每次重构 AQCTLA/AQCTLB 后固定的第一个驱动器时都会发生这种现象、并且后续的驱动波形正常。

 

EPWM1A COMP 加载模式的当前配置如下:EPwm1Regs。 CMPCTL。 位。 LOADAMODE = CC_CTR_ZERO _PRD;EPwm1Regs。 CMPCTL。 位。 SHDWAMODE = CC_SHADOW;。

 

结合上述现象、我想知道为什么启用高精度时 EPWM1A 的第一个驱动器将丢失一半、而高精度 EPWM1A 的屏蔽将恢复正常。 这之间的关系是什么、谢谢。

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tobby、
    您的脉冲是以 ZRO 为中心还是以 PRD 为中心?

    e2e.ti.com/.../746906

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

    Cody Watkins

    Epwm1为零舍入。

    当 HRPWM,影子加载模式同时设置为 CTR=ZERO 和 PRD 时、用户可访问的 CMPx 和 CMPxHR 影子寄存器仅在 CTR=ZERO 时加载。 此功能仅适用于 Piccolo 或所有28x?

    即使只在 CTR = 0时获取加载程序当 HRPWM 时、驱动器应该为:

    由于程序中 CTR=ZERO 时不配置任何操作、我认为 HR 应该先丢失所有驱动器、而不是半驱动器。为什么这具有上升沿?

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

    Tobby、

    请将您的脉冲围绕 CTR=PRD 居中。 我认为这应该能使它符合您的预期。

    您设置的值已在图中的第一个 CTR=PRD 上更新。 问题在于、在 HRPWM 模式下、PMW CMPA 设置的 HR 部分在每个周期内仅在内部更新一次。 它在 CTR = ZRO 时更新、因此您在 CTR = 0前有旧设置、在 CTR = 0后有新设置。

    此致、

    Cody  

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

    Cody:

    感谢您的回复。

    请将您的脉冲围绕 CTR=PRD 居中。 我认为这应该能使它符合您的预期。

    我们有2通道2H 桥、第一个通道由 EPWM1A/EPWM2A/EPWM3A/EPWM3B 驱动、如上所述。 第二个通道由 EPWM4A/EPWM5A/EPWM6A/EPWM6B 驱动。 两个通道在不同的脉冲中心具有90度的相移、EPWM4A 在 CTR = PRD 附近居中、第二个通道没有此类半驱动损耗、因此如果 EPWM1脉冲在 CTR = PRD 附近居中、问题就会得到解决。 但是、对于90度相移、我们无法在 CTR=PRD 附近更改中心 EPWM1。

    您设置的值已在图中的第一个 CTR=PRD 上更新。 问题在于、在 HRPWM 模式下、PMW CMPA 设置的 HR 部分在每个周期内仅在内部更新一次。 它在 CTR = ZRO 时更新、因此您在 CTR = 0前有旧设置、在 CTR = 0后有新设置。

    OLD 设置、直到 CTR=0:(当驱动器为低电平时、此代码每0或 PRD 执行一次)

        ;EPWM1A、CAD =清除、CAU =清除

          MMOVXI     MR0  、#0x0050

       MMOV16     μ@ EPwm1Regs.AQCTLA.ALL、MR0

    CTR=0后的新设置。(当驱动器恢复 时,此代码每0或 PRD 执行一次)

        ;EPWM1A、CAD =设置、CAU =清除

          MMOVXI     MR1、  #0x0090

       MMOV16     @ EEPWM1Regs.AQCTLA.ALL、MR1

    根据旧设置或新设置, 当 CTR= ZRO 时,ePWM 应该没有动作,为什么它有上升沿?

    此致、

    Tobby

     

     

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

    Tobby、

    请为 PWM3A/B 配置 TBPHS、以确保脉冲以 CTR=ZRO 为中心。

    我相信 CAD 和 CAU 可以随时更新。 只有 CMPx 和 CMPxHR 寄存器在 HR 模式下仅在 CTR=ZRO 时生效。

    因此、上升沿发生在零、因为您将 CAD 操作重新配置为高电平、并且 CMPA 写入尚未发生。

    此致、
    Cody