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.

[参考译文] TMS320F28377D:动作限定器子模块生成的边沿位置和 HRPWM 不操作性区域的大小。

Guru**** 2461010 points
Other Parts Discussed in Thread: TMS320F28377D

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1498938/tms320f28377d-position-of-the-edges-generated-by-the-action-qualifier-submodule-and-size-of-the-hrpwm-inoperativity-region

线程中讨论的其他器件:TMS320F28377D
  1. 器件型号:TMS320F28377D

工具/软件:

您好:

在与 TMS320F282377D MCU 上的 HRPWM 配合使用时、我注意到了一些使我对技术参考手册(SPRUHM8I)中的理解有疑问的行为。

特别是、从1896页的图15-24可以看出、边沿似乎是在 TBCTR 从 CMPx 向上计数到 CMPx+1后或在 CMPx 向下计数到 CMPx-1后立即由动作限定符子模块生成的、就像动作限定符输出信号被锁存并且不是 TBCTR 与 CMPx 的连续比较结果一样。

这似乎与第1882页的第15.5.1节"计数器比较子模块的用途"中给出的描述形成对比、在该小节中写成"计数器比较子模块接受时基计数器值作为输入。 该值将持续与计数器比较 A (CMPA)计数器比较 B (CMPB)计数器比较 C (CMPC)和计数器比较 D (CMPD)寄存器进行比较。 当时基计数器等于其中一个比较寄存器时、计数器比较单元会生成适当的事件。"

因此、似乎在 TBCTR 从 CMPx-1到 CMPx 向上计数后立即生成匹配事件、或在连续比较的结果下从 CMPx+1到 CMPx 向下计数后立即生成匹配事件。

此外、从1962年第15.14.1.5.3小节"占空比范围限制"来看、似乎仅在未使用高分辨率周期控制时、才在每个时基周期的前三个 EPWMCLK 周期内强制禁用 HRPWM。

在我的测试过程中、为了简单起见、我按如下方式配置了 EPWM1:

   -仅向上计数方向(TBCTR.CTRMODE = 0b00 );
   -总时基预分频比设置为1 (TBCTL.CLKDIV=TBCTL.HSPCLKDIV=0xb000 );
   - TBPRD = 99;
   - TBCTR == CMPA 事件用于生成 AQEPWM1A 上升沿(AQCTLA.CAU = 0b10);
   - TBCTR == CMPB 事件用于生成 AQEPWM1A 下降沿(AQCTLA.CBU = 0b01 );
   -死区子模块完全旁路(DBCTL.OUT_MODE = 0b11);
   -高分辨率周期控制禁用(HRPCTL.HRPE=0 );
   -禁用高分辨率死区(HRCNFG2.EDGEMODEDB = 0b00 );

测试1:  

当 CMPB = 99、HRCNFG.EDGEMODE = 0b10 (AQEPWM1A 下降沿的高分辨率定位)且 CMPA=10时、我可以 在0 < CMPAHR <=(MEPscaleFactor-1)= 61范围内对 AQEPWM1A 下降沿(TBCTR =CMPB 事件导致的高分辨率定位)进行高分辨率定位。 对于更大的 CMPAHR 值、AQEPWM1A 下降沿不再发生移位。

这种行为使我相信 AQEPWM1A 下降沿是在 TBCTR 从98向上计数到99后立即生成的(CMPx-1到 CMPx 转换),而不是在从99溢出到0后立即生成(CMPx 到 CMPx+1转换,如图15-24所示)。
CMPAHR >= MEPscaleFactor = 62时不再可能对 AQEPWM1A 下降沿进行微定位这一事实与以下事实相一致:HRPWM 子模块由于连续 PWM 周期的 HRPWM 不工作区域而被强制禁用、同时仍在延迟 AQEPWM1A 下降沿。
因此、HRPWM 子模块会突然被旁路掉并且 AQEPWMiA 信号会立即输出、因此无论 CMPHR >= MEPscaleFactor 是什么、生成的下降沿都与连续 PWM 周期/HRPWM 不工作区域的开始同步。

测试2:  

当 CMPB = 90、HRCNFG.EDGEMODE = 0b01 (AQEPWM1A 上升沿的高分辨率定位)、CMPA = 0或 CMPA = 1时、无论 CMPAHR 寄存器值是什么、AQEPWM1A 上升沿都不能进行微定位。 这与以下事实一致:对于此类 CMPA 值、产生的 AQEPWM1A 上升沿属于 HRPWM 不工作区域。

测试3:  

当 CMPA = 2时、AQEPWM1A 上升沿不仅可以在0 < CMPAHR <= 61范围内进行微定位、还可以在较大的0 < CMPAHR < 0xFE 范围内进行定位。
但是、只有在 HRPWM 不操作性区域为三个 EPWMCLK 周期较大时、并且 TBCTR == CMPA 事件导致的上升沿在 TBCTR 向上计数从 CMPA-1到 CMPA 后立即生成、才应发生这种行为、如测试1建议的那样。

下面是我要问的问题。

-如果在向上计数模式下,在 TBCTR 从 CMPx 向上计数到 CMPx+1后立即产生边沿,如图15-24所示,如何解释从测试1获得的结果?
在这种情况下、TBCTR == CMPB == 99事件导致的下降沿不应是可微定位的、因为它恰好在连续 PWM 周期的 HRPWM 不易操作区域的开始处发生。

-如果在向上计数模式下,在 TBCTR 从 CMPx-1到 CMPx 向上计数后立即产生边沿,如测试1所示,如何解释从测试3获得的结果?
 如果 HRPWM 不操作性区域较大三个 EPWMCLK 周期、则第一个 AQEPWM1A 上升沿超出该区域将是 TBCTR ==CMPA == 3事件导致的上升沿。

测试1和测试3的唯一解释是、在向上计数模式下、当 TBCTR 从 CMPx-1向上计数到 CMPx 时、会生成边沿、并且 HRPWM 不操作性区域是两个(而不是三个) EPWMCLK 周期较大。

任何替代的解释都是非常受欢迎的。

非常感谢您的支持、

此致、

Alberto

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

    您好、Alberto、

    感谢您的提问。 我将查看 TRM 并对此进行一些研究。

    此致、

    Stevan D.

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

    尊敬的 Stevan:

    非常感谢您的帮助。 我期待着阅读你的答复。

    此致、

    Alberto

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

    您好、Alberto、

    动作限定器子模块会锁存比较事件、从而根据事件发生时比较寄存器的状态生成输出信号。  必须注意的是、动作限定器子模块旨在锁存比较事件、这意味着根据事件发生时比较寄存器的状态生成输出信号。 这种锁存机制可实现对 PWM 输出的更精确控制。

    由于计数器比较子模块执行的连续比较、在 TBCTR 从 CMPx-1到 CMPx 向上计数或从 CMPx+1到 CMPx 向下计数后会立即生成匹配事件。

    当不使用高分辨率周期控制时、占空比范围限制适用、并且 HRPWM 模块在每个时基周期的前三个 EPWMCLK 周期内被强制禁用。

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

    尊敬的 Stevan:

    非常感谢您的答复。

    我知道、负责生成动作限定符输出信号的锁存器由计数器比较子模块生成的事件触发、因此 TBCTR == CMPx 事件发生时配置的边沿(x ={A、B})由动作限定符子模块在 TBCTR 寄存器从 CMPx-1向上计数或 CMPx 寄存器向下计数之后立即生成。

    根据上述理解、在以下情况下:

       - CMPA = 0;
       - CMPB = TBPRD;
       -时基计数器配置为向上计数;
       -动作限定符配置为在发生 TBCTR ==CMPA 事件时设置 AQEPWMiA 信号(高电平);
       -动作限定符被配置为在发生 TBCTR ==CMPB 事件时清除(设置为低电平) AQEPWMiA 信号;

    当 TBCTR = TBPRD 时、AQEPWM1A 信号仅在 TBCLK 周期内保持低电平。
    这是正确的吗? 如果是、则说明测试1的结果。

    关于占空比范围限制(我称为"HRPWM 不操作性区域")、我知道 HRPWM 子模块在每个时基周期的前三个 EPWMCLK 周期内一定会被禁用。

    因此、如果时基预分频比设置为1 (TBCLK == EPWMCLK)、这意味着 HRPWM 子模块将在 TBCTR =0、1、2时在时间间隔内保持禁用状态。

    在以下情况下、考虑上述两种理解:

        - CMPx = 2;
       -一个边沿被配置为在 TBCTR == CMPx;
       -时基计数器配置为向上计数;

    当 TBCTR 向上计数从1到2时、会生成一个边沿、并且此类边沿不应是可微定位/精细延迟、因为它发生在从时基周期开始的第二个 TBCLK/EPWMCLK 周期结束时。 第一个微定位边缘应是 CMPx = 3时生成的边缘。


    但是、在测试3中、CMPx = 2时生成的边缘会进行微定位。 那么、如何解释我在测试3中得到的结果呢?
     
    我很抱歉我的精度过高,但我需要弄清楚哪些 CMPx 值将允许获取微定位边缘,哪些不允许。


    我还必须知道我在测试过程中注意到的行为是否正常、或者它们是否是特定行为的结果
    用于测试的配置、或它们是否是由我的错误引起的。

    感谢您的支持和耐心、

    此致、

    Alberto
     

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

    您好、Alberto、

    仅当 TBCTR = TBPRD 时、AQEPWM1A 信号才会在 TBCLK 周期内保持低电平。
    这是正确的吗? 如果是、则说明测试1的结果。

    是的、您在此处的理解是正确的。  

    第一个微可定位边缘应该是 CMPx = 3时生成的边缘。

    是的、 第一个可微定位的边缘确实应该是 CMPx = 3时生成的边缘。

    但是、在测试3中、CMPx = 2时生成的边缘可进行微定位。 因此、如何解释我在测试3中获得的结果?

    尽管 HRPWM 子模块在每个时基周期的前三个 EPWMCLK 周期内被禁用、但在此期间会启用动作限定符。

    当 CMPx = 2仍可微定位时、这表明可能存在一些内部机制允许微定位边沿、即使 HRPWM 子模块未完全启用也是如此。  我不确定为什么会出现这种情况、可能此行为特定于您的测试中使用的特定配置。