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.

[参考译文] AM2634-Q1:EPWM2 PRD 同步负载上出现异常

Guru**** 2534260 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1265372/am2634-q1-strange-phenomenon-on-the-epwm2-prd-sync-load

器件型号:AM2634-Q1

BU 先生/女士、  

客户端遇到关于 EPWM2 PWM 输出的问题。 在其设计中、使用 EPWM1作为同步源(EPWM1 PRD=ZRO)、EPWM2/EPWM3的 PRD 影子加载事件是该同步信号、并且 PRD 也链接到 EPWM1的 CTR。 EPWM1/2/3将有频率/周期突变和缓慢改变(即40kHz 突然变为60kHz、60kHz 缓慢变为40kHz)。 EPWM2的 配置代码如下所示。 注意、操作限制条件是 CMPB 下拉和 Zero 下拉。  

在突然改变频率期间、即40kHz -> 60kHz、 有时、PWM2的输出不会改变 。 使用25us 后台任务读出 EPWM2的 CTR 和 PRD 值、以及 如果 CTR 大于 PRD、一个 GPIO 将被拉低。 如下图所示(紫色信号为 GPIO)、当  PWM 输出不变时、检测到 CTR 值大于配置的 PRD 值。  图中是 PWM 输出频率的测量信号(黄色信号是 PWM2的 B 输出、测量频率是黄色信号)。 您可以看到、这个问题是在频率从40kHz 突然变为60kHz 时发生的、不是每次都是 意外发生的。 PWM 输出缺失意味着 AQ 配置中缺少 CTR = CMPB-DOWN 事件。  

我们尝试了很多方法、例如禁用相移等、但都无法正常工作。 最后、我们发现、如果在 PWM2的 PRD 突然变化期间、首先提供一个更大的 CMPB 值(例如>100)、然后逐步将 CMPB 值降低到预期的小值、可以避免上述问题:  

我认为该问题可能是由 EPWM2 PRD 影子加载操作有时不起作用以及缺少 CTR - CMPB 向下事件引起的、并且 CTR 值也会大于配置的 PRD 值(我们尝试使用 CTR = CMPB 向上事件来上拉输出、这样可以正常运行)。 这一概念如下图所示:  

因此、问题是为什么 PRD 影子加载不起作用、以及为什么如果我们配置更大的 CMPB 值、可以避免这一问题。  

此致、  

将会  

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

    您好、Will:

    很抱歉在答复中出现了延迟,但这里有很多细节,所以我想花时间仔细地解开它。 我不确定我是否有充分的理解、但我将概述我认为您正在做什么、以及我认为问题在于对模块工作原理的理解。 请告诉我,如果我在任何时候错了我对你的设置的理解。

    设置:

    • EPWM1用作 EPWM2/3的 AQ 触发事件 T1/T2的源。
    • EPWM1倒计数、当它为零时、它从影子寄存器影子加载到活动寄存器
    • 如果 在 CTR 值大于  新内容 正在从影子寄存器加载 PRD 值、则您未观察到 PWM2输出发生了变化
    • 您期望的是、当加载使 CTR > PRD 的 PRD 时、会发生 CTR = CMPB 关闭事件。

    如果我有这一切...

    我对器件预期工作原理的理解:

    • ePWM 配置为计数器模式、从开始到结束
    • ePWM 配置为计数器模式递增 同步后
    • 由于该问题是在影子加载事件之后发生的、因此当该问题发生时、ePWM 在 向上计数模式下运行
    • 因为当 CTR 较大时已加载新的 PRD、所以 CTR = PRD 不可能发生匹配
    • 因此、不会触发任何 AQ 事件、输出不会按预期变化
    • 最后、当使用更大的 CMPB 值进行配置时、会产生一种情况、即 CTR 可能达到 CTR = CMPA 事件、该事件在向上计数时应提示来自 ePWM 的低电平操作

    我不明白的一点是、为什么会出现 CTR = CMPB 递减事件这一概念。 在所述配置的情况下、我没有遵循预期的逻辑。

    此致、

    拉尔夫·雅各比

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

    尊敬的 Ralph:  

    这个问题解释起来很复杂、但从我在客户现场的调试来看、这个问题可能是由 ePWM 组互连和 ePWMx 寄存器影子加载之间的冲突引起的。 原因如下:  

    1)如果我在25us ADC ISR 中减少某些寄存器访问、则无论 EPWM2使用什么寄存器、都不会再出现此问题。  

    2)如果我把 EPWM2的组更改为 G1,而其他 ePWM 模块仍然保持 G0,EPWM2的 PRD 影子加载就可以了,但是 EPWM3 (链接到 EPWM1 PRD)会有这个问题。  

    向您展示我发现的内容非常复杂、因为客户不会分享代码。 因此、当我在客户现场时、可能需要给您打电话。  

    但在此之前、我需要您的帮助、请内部检查、当 R5内核访问 ePWM 模块的 GX PWM 寄存器组时、该操作是否会影响 ePWM IP 中的影子加载操作? 下图是 ePWM 的互连。  

    此致、  

    将会  

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

    您好、Will、

    感谢添加的详细信息并理解是否可能需要调试调用。 我将在离线时就此问题与您联系。

    、但在此之前、我需要您的帮助、请在内部检查当 R5内核访问 EPWM 模块的 GX PWM 寄存器组时、此操作是否会影响 ePWM IP 中的影子加载操作? 下图是 ePWM 的互连。  [/报价]

    我已将此问题发送给我们的一位专家、他们对此有更好的评论、我们将很快回复您提供他们的反馈。

    此致、

    拉尔夫·雅各比

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

    您好、Will、  

    但在此之前、我需要您的帮助、请在内部检查当 R5内核访问 EPWM 模块的 GX PWM 寄存器组时、此操作是否会影响 ePWM IP 中的影子加载操作? 下图是 ePWM 的互连。  [/报价]

    我将在此处查看您的最后一个问题、然后与您联系。  

    谢谢!

    -兰迪

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

    您好、Will、  

    我们的设计团队在周末给我们提供了一些信息。  我认为我们有一个可以消除此问题的使用方法/权变措施、但我 需要一天 左右的时间来获得确认。 我明天会再更新信息。  

    谢谢!

    -兰迪

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

    您好、Will、  

    关闭此主题、因为您已通过电子邮件从客户那里发布了根本原因。  

    谢谢!

    -兰迪