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.

[参考译文] TMS320F28388D:在相移过程中不要更改 PWM 信号的平均值

Guru**** 2603695 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1080721/tms320f28388d-don-t-change-the-average-of-the-pwm-signal-during-phase-shift

部件号:TMS320F28388D

大家好!

我尝试使用同步化在2个 ePWM 模块之间进行相移。 占空比为50%,频率固定。

在相移过程中,我不想改变 PWM2的平均值。 这意味着高脉冲和低脉冲的持续时间将始终相同。 示例数字如下。 对此我需要一个建议。

最佳工程实践是什么? 中心对齐或边缘对齐无关紧要。

我计划在 pwm1=zero 时对边线对齐并将相位移添加到 pwm2。 同时,当 pwm1=zero 时获取中断,以人为计算 epwm2的 compa 值。

似乎我不能仅仅通过 无中断的时间基计数器同步来实现。 我可以做吗? 请提前感谢。

谢谢,

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

    您想在应用过程中持续更改相移吗? 关税始终保持在50%? 期间保持不变?

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

    是的! 但我也不想在过渡期间获得平均补偿。

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

    您是否可以向我显示不正确的转换波形与正确的转换波形?

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

    例如,这是从示例3向上向下居中对齐得出的。

    您可以忽略底部信号。 45°相位移转换第二个信号的周期为320us,前缀为360us。 这一周期的高脉冲为200us,低脉冲为160us。 我希望他们都能有180us。 我还能通过边缘对齐(向上计数) PWM 获得所需的功能吗?

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

    我明白了。 正确过渡的效果如何。 无论怎样,当您改变相移时,您要么获得较长的低脉冲,要么获得较长的高脉冲... 我不正确吗?

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

    我无法说出您是否已被转移,因为我仍在尝试了解 ePWM 模块并掌握相移功能。 但是,如果我有不同 的 TBPHS 寄存器来处理不同的同步事件,这似乎是可能的。 或者,在同步事件期间将 TBPHS 添加到 TBCTR (TBCTR = TBCTR + TBPHS),而不是 在同步事件期间将 TBPHS 加载到 TBCTR (TBCTR = TBPHS),可以解决我的问题。

    也许您确实使用类型5 ePWM 添加了此功能:) 但我现在已经解决了这个问题。 让我们来看看。 我正在处理这个问题。

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

    埃尔汉,

    可能第一步是确定正确的波形的外观。 目前,我无法想象一个波形,其中相移发生变化,过渡时期的负荷保持在50%。 也许可以尝试制定它需要的样子并与我分享。

    NIMA

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

    NIMA,

    开机自检开始时的2个图解是正确信号的外观。 只需考虑第一个问题。 (周期= 16T,50%负荷)

    在第一个图解中,只有一个相位从0到90°的过渡。 在转换时,PWM2信号周期为20T (一个周期),但占空比仍为50%。 那么这是正常的。

    另一个图解相同,但相位°为90°至0。 因此,在转换过程中 PWM2信号周期=12T。

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

    在阶段向90的转变过程中,过渡看起来是这样吗?

    我们应该能够使用 ePWM 进行编码。

    现在我只想说一下我头脑中最上层的想法:

    因此,基本上在蓝色的 TBCT=0上,您会为黄色的 TBPHS 加载一个新值。  

    一些快速问题:

    1.您希望第一个长脉冲低,第二个长脉冲高。 如10T 和10T 所示(黄色)?

    2.现在,如何设置蓝色和黄色波形的操作? 在 TBCTR =零和 TBCTR = CMPx 上?

    3.您使用的是哪种计数器模式?

    我们可能会找到一个可以重新创建此设置的特定设置。

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

    你好,尼玛!

    感谢你的帮助

    答案1:哪一个不重要。 但我想缩短脉冲,以改变相位差极性。 请查看另一张图表。 在那里,脉冲的长度为6T。

    答案2-3:让我们说出向上和向下的计数器。 其余的都是您希望的。  但 为了方便起见,我在  TBCTR =零时将输出设为高, 在 TBCTR =周期时将两个信号设为低,因为我不更改占空比。

    我上次得出的结论是,我应该在两个同步事件之间更改 TBPHS 值。 这意味着中断。 对吗? 而 pwm1的 SyncOut 事件是  TBCTR =零, 而 TBCTR =期间。 我认为我应该在这种情况下产生一个中断,以更新 TBPHS 值。

    我正在努力实施这项计划,但目前还不能使其发挥作用。   

    如果您提供一个有效的样本,那将会很好。  

    谢谢,

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

    好的,让我们看看我们是否可以解决这个问题。

    EPWM1在 CTR =0时设置高,PRD (PRD = 300)时设置低电平(50%负荷):

    当相移发生变化时,让我们说 TBPHS = 0到100,

    EPWM1的 CTM=0和 EPWM2的 CTM=0同时出现,两个输出均设置为高。

    我们计算的是 PRD,将它们设置为低。然后再计算为零,将它们设置为高。

    然后,EPWM2的同步进入 CTR 设置为100,计数器计数和 EPWM2命中数分别为 PRD 和 LOW。

    因此,在这种情况下,EPWM2的时间很长,从100到 PRD。 然后,时间将从 PRD 增加到0。

    所以你的时间和时间都不一样。

    您需要稍微更改设置。 你需要的是将100和 PRD 分成0两个偶数次。  

    PRD + 100 (TBPHS)/ 2是您在过渡周期中需要保持高和低水平的时间长度。

    我会使用 CMP 寄存器(例如 CMPA)将其放置在 PRD + PHS/2上。

    例如,将 CMPA (而不是 PRD)的输出设置为低。这应该实现。

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

    你好,尼玛!

    感谢您提供详细信息。 我会怎么做。 老板想要这样。 (笑)  

    但是,对于 不同的同步事件(如 TBPHS1, TBPHS2),最好有不同的 TBPHHS 寄存器。 否则,我必须在中断服务例程(ISR)中加载 TBHS 寄存器以获取不同的值。 此外,ePWM 模块不允许为 CTR=0,CTR=周期等不同计数器事件分配不同的 ISR。 这在 ISR 中带来了额外的 IF 语句。

    谢谢,

      

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

    您可以设置不同的 DMA 通道以写入 ePWM regs。 然后在需要时触发相应的 DMA 通道。