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.

[参考译文] TMS320F28335:将 EPW1A 的值与 EPW1B 交换、同样将 EPW2A 与 EPW2B 交换

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1522119/tms320f28335-swap-the-values-of-epw1a-with-epw1b-similarly-epw2a-with-epw2b

器件型号:TMS320F28335

工具/软件:

尊敬的 TI 成员:

我以 ePWM 生成的示例代码为例进行操作。 通过添加由我在代码中设置的因子 Duty & TPWM 变量(如 TPWM =5357、duty = 0.46)、我可得到大约28kHz 的频率、但根据得到的占空比  

EPWM1A 在 GPIO0 = 54%上运行

EPWM1B 位于 GPIO1 = 46%上

我想更改或交换占空比值、以便可以如下方式在 GPIO0上的 EPWM1A 和 GPIO1上的 EPWM1B 上获取结果:

EPWM1A 在 GPIO0 = 46%上运行

EPWM1B 位于 GPIO1 = 54%上

EPWM2需要交换值的过程相同(EPWM2A 更改为 EPWM2B)。  

请建议如何更改代码。

请查找随附的代码:

谢谢

此致

Arsalan

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

    您好:

    如果要交换输出、只需交换 EPWM1A 和 EPWMB 上的动作限定器事件。 (即 EPwm1Regs.AQCTLA.ALL = 0x0600;EPwm1Regs.AQCTLB.all = 0x0060;)

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

    尊敬的 Stevan:  

    感谢您的答复。

    通过更改 以下代码中的值(EPwm1Regs.AQCTLA、EPwm1Regs.AQCTLB)、它保持与之前相同的占空比值( 未发生更改/交换 )。 我有一个工作代码用于串行传输 TPWM 和占空比值。 后者从外部接收这些值、我之前测试过这些值、并从外部获得准确的 TPWM 和占空比值。 出现了交换占空比值的问题。 请检查随附的代码:

    更改前:

    更改后:

    通过示波器检查结果、与之前的更改相同:

    EPWM1A 在  GPIO0 = 54%上运行

    EPWM1B 位于  GPIO1 =  46%上  

    EPWM2A 位于  GPIO2 = 54%上

    EPWM2B 在  GPIO3上=  46%  

    请查找随附的代码  

    我们需要/要求

    EPWM1A 在  GPIO0 = 46%上运行

    EPWM1B 位于  GPIO1 = 54%上

     EPWM2A 在  GPIO2 = 46%上

    EPWM2B 在  GPIO3 = 54%上

     

    请就此提出建议。

    此致

    Arsalan

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

    您好、Arsalan、

     如果 CMPA = CMPB = 0.46 *周期、通过采用您配置动作限定器的方式、奇怪的是如何在 PWMA 上实现54%的占空比、在 PWMB 上实现46%的占空比。

    当我再看一下您的实现时、发生这种情况是因为您在死区子模块中使用了反转模式。 使用时、EPWMB 将始终与 EPWMA 互补。  

    有很多方法可以实现所需的占空比。 如果使用反转模式(EPwm1Regs.DBCTL.BIT.POLSEL = 2)、则根本不需要配置 CMPB 和 ACTLB。 您可以设置占空比= 0.54、并使用 CMPA 和 ACQTLA。

    或者没有反相模式、您可以设置 Duty = 0.54、仅使用 CMPA。 然后、对于 PWMB、您可以在向上计数时清除并设置 CMPA 向下计数(AQCTLB)。 希望这有所帮助。