- 器件型号: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