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.

[参考译文] TMS320F28379D:TMS320F28379D:在旋转相移时使 PWM 占空比延长

Guru**** 2872500 points

Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1624036/tms320f28379d-tms320f28379d-pwm-duty-cycle-extending-while-rotating-phase-shift

部件号: TMS320F28379D
主题: C2000WARE 中讨论的其他器件

主席先生/女士、

每个线路周期, 50Hz 交流输入电压。我有零交叉信号,在 20ms(50Hz),这是中断 DSP。  对于前  20ms、我想保持相位序列 PWM1、PWM2、PWM3、PWM4。 在接下来的 20ms、我希望保持 PWM2、PWM3、PWM4、PWM1。 在接下来的 20ms、我想保持 PWM3、PWM4、PWM1、PWM2。 对于接下来的 20ms PWM4、PWM1、PWM2、PWM3。 类似这 4 个间隔将在 DSP 固件中继续。

在周期为 6250(1 毫秒)的向上/向下计数模式下、我在旋转模式下尝试了相移 4167 (333us)、6250 (500us)、8333 (666us)、10416 (833us)。 我观察到 PWM 之间示波器上的正确相位超前量。 但在这样做的同时、我将占空比设置为每 80ms 扩展一个开关周期。

在搜索解决方案时、我遇到了 Allison Nguyen 的解决方案/解决方案。

TMS320F28379D:在多相可变频率运行中延长 PWM 占空比

她在 epwm_ex3_synchronization_modified.c 文件中提供了解决方案。  但它似乎对我不起作用。

原因可能是什么? 还是有其他工作要做。

谢谢。此致、

Prashant Gugle

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

    此处是类似问题的链接

    TMS320F28379D:在多相可变频率运行中实现 PWM 占空比扩展 — C2000 微控制器论坛 — C2000Tm︎ 微控制器 — TI E2E 支持论坛

    下面是文件

     e2e.ti.com/.../2477.epwm_5F00_ex3_5F00_synchronization_5F00_MODIFIED.c

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

    您好、Prashant、

    我已经邀请了适当的专家,他们应该在 1-2 天内回复你。

    此致、

    Delaney

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

    您好 Prashant

    在向上/向下计数器模式下、如果相移大于比较寄存器值、则可能会错过动作限定器。 您是否可以尝试 ePWM 计数器的计数模式? 如果这不起作用、请告诉我。  

    谢谢你  

    Amir Hussain

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

    尊敬的 Amir:

    即使发生了向上计数器模式扩展占空比、我也尝试了此操作。

    谢谢。此致、

    Prashant Gugle

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

    尊敬的 Amir:

    当我尝试向上计数模式时、即使我没有获得正确的相移。 我尝试使用 12500 作为时基周期、并使用 4,167,6256250833833310417 分别作为 PWM2、PWM3、PWM4 和 PWM5 的相移值。  对于 PWM1 的 PWM2、PWM3、PWM4 和 PWM5、我应该在示波器中观察到的相位值分别为 330uS、500uS、660uS 和 833us。

    我得到的相位值为 660uS、500us、330uS 和 160us。

    导致相位值错误的原因可能是什么?

    我尝试了 C:\ti\c2000\C2000Ware_6_00_01_00\driverlib\f2837xd\examples\cpu1\epwm\ePWM_ex3_synchronization.c 文件。

    谢谢。此致、

    Prashant Gugle

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

    尊敬的 Amir:

    在向上/向下计数器模式下 、 PWM2、PWM3、PWM4 和 PWM5 按预期可分别获得 330uS、500uS、660uS 和 833us、扩展占空比除外。

    谢谢。此致、

    Prashant Gugle

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

    您好、Prashant、

    我正在研究这个。 请允许我花几天时间来处理这个问题。

    谢谢你  

    Amir Hussain

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

    尊敬的 Amir:

    我当时正以领先的方式阅读阶段。 如果我以滞后方式读取 PWM 之间的相位、则表明它是正确的。 但当我们尝试旋转相移时,会延长占空比。

    谢谢。此致、

    Prashant Gugle

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

    您好 Prashant

    感谢您的努力并提供有关此问题的其他信息。 我正在研究它、并在找到解决方案后立即回复您。

    谢谢你  

    Amir Hussain

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

    尊敬的 Amir:

    您找到了一些 PWM 相位旋转的解决方案?

    谢谢。此致、

    Prashant Gugle

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

    Prashant,

    Amir 将于下周前离职。 我可以帮你。

    您指向的解决方案有固定的主 EPWM 和从 EPWM ,但在您的情况下,似乎主器件的角色正在旋转,这可能会导致比赛条件,该解决方案可能对您没有用处。

    您是否尝试使用一些不同的未使用 ePWM 模块作为主模块、其余的全部 4 个模块作为从模块?

    此外、在所有四个模块中、哪个模块显示脉冲扩展?

    此 1PH 交错式 PFC 应用吗? 如果是、这是在过零处发生的?

    此外、您在 e2e 中提到的解决方案使用 T1 作为同步 事件。 您是否曾尝试过在任何可能导致 CMPA 事件丢失的情况下 CMPA<TBPHS 现象:  TMS320F28379D:在多相可变频率运行中延长 PWM 占空比 

    此致、

    Sumit

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

    您好 Sumit、

    我使 PWM1 保持为主 PWM、并使 PWM3、 PWM4、 PWM5、PWM6 相对于 PWM1 保持旋转相位。 还尝试了 上述 使用 T1 作为同步事件的解决方案。 但问题仍然是一样的。

    谢谢。此致、

    Prashant Gugle

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

    Prashant,  

    请确认我对该问题的理解是否正确:

    您有一个未使用的虚拟主器件 PWM、它不是传动器的一部分、为 PFC 运行四相交错操作、旋转相移似乎 需要为 0、90,180,270。 但我在您的第一个问题中看到、我看到了向上/向下计数器模式、而且相移计数似乎与此处提到的相移度不同、它们是否分布均匀。 此外、我还看到第三相和第四相位的相位计数大于 TBPRD 本身。 您能否确认、您有一轮这些计数考虑到这是向上/向下计数模式、或者如果它是向上计数模式、则 TBPRD 需要是两倍 12500 吗? 另外、在这 4 个阶段中、哪一个(第 4 个)显示跳转行为或所有跳转行为?  

    请确认、以便我理解正确。

    现在,我将根据上面的对话考虑以下内容并解释该问题 —  PWM1 是具有向上计数模式的主/同步 PWM、具有 12500 个旋转相位、PWM3、PWM4、PWM5、PWM6 相对于 PWM1 具有 4 个旋转相位。 对于前 20ms、我想保留相位序列 PWM3、PWM4、PWM5、PWM6。 在接下来的 20ms、我想保留 PWM4、PWM5、PWM6、PWM3。 在接下来的 20ms、我想保留 PWM5、PWM6、PWM3、PWM4。 接下来的 20ms PWM6、PWM3、PWM4、PWM5。 类似这 4 个间隔将在 DSP 固件中继续

    在我看来、TBPHS 在 旋转相移 操作期间发生跳跃、如下所述:

    每 80ms(完整旋转周期)、一个 PWM 会进行一次 最大相位跃变-  80ms 边界上的示例:

    PWM3 是 最后一个 (较大的 TBPHS、例如在 3/4 周期偏移、周期= 12500 时为 9375)   
    PWM3 变为 第一个 (TBPHS = 0)
    但反向过渡是危险的。 考虑从最后一个→开始的 PWM6、或者从前一个→最后一个开始的 PWM3

    周期= 12500
    CMPA = 6250(例如 50%占空比)

    →TBPHS = 0✓计数器运行 0..12500、命中 CMPA = 6250 μ A
    同步时新的 TBPHS = 9375→、计数器跳至 9375

    因此、AQ -> 9375 > CMPA (6250)→在 CMPA 处设置操作已经丢失
    计数器的运行时间为 9375 至 12500、仅清除事件触发→输出保持高电平~2 个开关周期=扩展占空比
    这仅出现在 80ms 边界处、因为这是唯一发生最大相位重新排序(PWM 从最后一次返回到第一次,或从第一次旋转到最后一次)的时间。

    以下是解决此问题的一些建议:

    1.相位改变后立即强制输出状态(最快修复)

    写入新TBPHS值后、使用 动作限定器连续软件强制 要将输出推至正确的空闲状态、然后释放:

    // After writing large TBPHS to EPwm3Regs (e.g., making it the last phase)
    EPwm3Regs.AQCSFRC.bit.CSFA = 2;  // Force output A LOW immediately
    // Allow 1 ISR tick / one cycle, then release:
    EPwm3Regs.AQCSFRC.bit.CSFA = 0;  // Return to normal AQ control

    2.仅在期间/零事件时更新 TBPHS(正确方法)

    切勿在TBPHS周期中写入。 将更新安排为在生效 TBCNT = 0

     

    此致、

    Sumit

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

    您好 Sumit、

    我使用周期为 6250 的加/减计数器、因此总开关周期为 1 毫秒。 相移值 在 PWM 之间并没有均匀分散、到 330uS、500uS、660uS 和 833us(我将纠正此问题)。 PWM1 是主 PWM 、分别通过 PWM2、PWM3、PWM4 和 PWM5 获得上述相移。

    这是每个 PWM 每 80ms 发生一次。

    我会尝试您的解决方案 1、并告诉您结果。

    谢谢。此致、

    Prashant Gugle

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

    我懂了。  当然、请告诉我具体情况。

    此致、

    Sumit