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:我想知道比较寄存器"影子到活动"加载操作的确切时序。

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1490637/tms320f28377d-i-would-like-to-know-the-exact-timing-of-the-shadow-to-active-load-operation-for-the-compare-register

器件型号:TMS320F28377D

工具与软件:

您好!

我很好奇当比较寄存器设置为0时、F2837x 的 ePWM 模块(类型4)的行为如何、从而使 PWM 信号电平改变点(当计时器计数器寄存器与比较寄存器匹配时)与比较寄存器的"影子到活动"加载事件保持一致。

具体而言、我想知道是否像在案例1中那样、由于影子到活动加载操作、活动比较寄存器是否在下一个周期立即更新为0、从而导致 PWM 引脚状态同时发生变化。 或者、与第2种情况一样、实际 PWM 引脚操作是否额外延迟一个周期。

[摘要]
*我想知道比较寄存器的影子到活动加载操作的确切时间。
*当在 CTR AQCTLx [CAU=清除/ CAD=SET]条件下在影子模式下使用 CMPA 寄存器时、当 CMPA 寄存器值更改为0时、CMPA 寄存器的"影子到活动"加载操作如何与 CTR = CMPA 事件触发的 PWM 引脚操作交互?

谢谢。此致、
Sang-il

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

    您好、Sang-il

    *如果启用了影子寄存器,则在发生以下事件之一时,影子寄存器的内容将被传输到活动寄存器:

    - CTR = PRD; CTR =零; CTR = PRD 和 CTR =零; 同步事件  

    *在 TBCTR = 0和 CMPA = 0上发生 AQCTLA 操作时、器件 TRM 中有一条注释:
    "如果计数器比较 A 寄存器(CMPA)或计数器比较 B 寄存器(CMPB)设置为值0、并且 AQCTLA 和 AQCTLB 上的动作限定器操作配置为在影子到活动加载的同一时刻发生(即 CMPA=0和 AQCTLA 在 TBCTR=0时使用 AQCTL 寄存器 LDAQAMODE 和 LDAQAMODE 位进入影子到活动加载)、则这两个事件均进入争用状态。 建议在 TBCTR = 0边界上使用影子到活动加载动作限定器输出 A/B 控制寄存器时使用非零计数器比较 "

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

    您好!

    感谢您的快速响应。

    我的问题与 CMPx 寄存器设置为影子模式(在 CTR =零时加载)以及 CMPx 寄存器的影子到活动加载时序配置为在 CTR =零时发生的情况相关。 此外、动作限定符子模块设置固定为 CAU=CLEAR 和 CAD=SET。

    EPwm1Regs.TBCTL.bit.CTRMODE = 2;
    EPwm1Regs.TBPHS.bit.TBPHS = 0;
    EPwm1Regs.TBCTL.bit.PHSEN = 0;
    EPwm1Regs.TBCTL.bit.PRDLD = 0;
    
    EPwm1Regs.TBPRD = 5;
    EPwm1Regs.TBCTR = 0;
    
    EPwm1Regs.CMPA.bit.CMPA = 4;
    EPwm1Regs.CMPCTL.bit.SHDWAMODE = 0;
    EPwm1Regs.CMPCTL.bit.LOADAMODE = 0;
    
    EPwm1Regs.AQCTLA.bit.CAU = 1;
    EPwm1Regs.AQCTLA.bit.CAD = 2;

    使用上述配置 EPWM1 模块正常运行。
    但是、如果 CMPA 寄存器值被设置为 0 周期内的初始值 ISR 影子到活动 的加载时序 CMPA 寄存器与重叠 操作限定符 CAU =清除 或者 CAD =置位 下一周期的事件时序。
    我想了解的实际状态变化是如何的 PWM 在这种情况下处理引脚。

    此外、您提到了 争用条件 、您的意思是给定条件或事件没有明确的优先级或预定义的处理顺序?

    谢谢。此致、
    Sang-il

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

    您好!

    对于第3代器件(如 TMS320F28377D)、情况几乎总是为1。 唯一不属于第1种情况的情况是、如果在 ISR 中向 CMPA 写入零值或使其接近零 TB 计数器值。 在这种情况下、动作限定器将像在案例2中那样在后面执行。

    在时序方面、CMPA 影子到活动状态将在 TBCTR = 0时发生、并且在该 TBCLK 周期结束时、AQCTL 将以最新的 CMPA 值执行、该值为零、导致情况1。

    此致、

    Stevan D.

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

    感谢您准确及时的答复。 它在理解和使用 F2837x ePWM 模块方面提供了很大的帮助。

    谢谢。此致、
    Sang-il