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.

[参考译文] TMS320F280049:在 CTR = 0且 HRPE = 1时、TMS320F280049中断

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/970573/tms320f280049-tms320f280049-interrupt-at-ctr-zero-with-hrpe-1

器件型号:TMS320F280049

我正在编程一个直流/直流转换器控制器、该控制器具有两个与 TMS320F280049M 进行交错的全桥 LLC、我打算使用 HRPWM。

通过两个 LLC 交错、ePWM1和 ePWM2用于生成两个相移为90度 的 PWM 信号、以单独驱动 LLC。 LLC 是一款谐振转换器、因此周期和相位都需要每几个 PWM 周期修改一次它的模块。

由于上-下计数占空比范围限制示例(HRPCTL[HRPE]=1)、TRM 图18-89、CTR=ZRO & CTR=PRD 不能用于 AQ 生成 PWM 操作。 因此,为什么仍然可以使用 CTR=ZRO/CTR=PRD 触发中断? 由于周期和零包含两个部分(PRD:PRDHR 或 TBPHS:BPHSHR)、因此中断发出的确切时间是多久?  

当 AQ 在 CTR=ZRO 上生成动作时、中断触发时间是否也会像 PWM 抖动一样变化?

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

    是的、您可以在设置中使用 CTR=ZERO 生成中断。

    这是 TBCTR 的粗略步进=零事件。 它与 ePWM 的高分辨率部分无关。

    中断恰好在 TBCTR = 0时触发、当然、在 ISR 处理程序开始执行之前、也要经过几个周期。

    同样、如果抖动是 HR 的一部分、并且不存在于 ePWM 中的 OUTH HR、则在生成 ISR 时不会出现抖动。  

    通常、如果您使用具有周期和相位控制的 HRPWM、您可能希望稍后添加死区等... 确保在 ZRO/PRD 处不使用 AQ。 使用 AQ 在 CMPAU/CMPAD 中生成操作。

    NIMA

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

    你好、Nima、

    感谢你的答复。  

    是的、我尝试使用 HRPWM、通过修改 TRREM 来实现由 ePWM1 CTR=ZRO 触发的中断例程中的相移、从而实现周期和相位控制。 主器件(ePWM1)看起来不错、但我发现从器件(ePWM2)在某些特定微步进上存在一些抖动、例如 PRD:PRDHR = 20.2看起来不错、但 PRD:PRDHR = 20.6将在从器件 PWM 信号上显示一些抖动(CMPA = PRD/2、AQ 使用 CAU 设置和 CAD 清除 PWM)。

    如上所述。  

    '中断恰好在 TBCTR=ZERO 时触发、当然、在 ISR 处理程序开始执行之前、要经过几个周期。'

     在 ISR 处理中、ePWM1和 ePWM2的 TRREM 值将按下图所示进行修改。 我想知道、当 CPU 以100MHz 运行时、如何及时修改 TRREM 值、在 ISR 处理程序之前有几个周期、并在修改 TRREM 寄存器之前有几个指令要运行? 或者 TRREM 是否有影子寄存器?

    EALLOW;
    如果(LoadAction = 1)
    {
    //
    //这也应该写入 PWM2的 GLDCTL2
    //
    (* ePWM[1]).GLDCTL2.bit.OSHTLD = 1;
    
    //
    同步时// TBCTR 相位负载(用于向上计数 HR 控制所需)
    //
    (* ePWM[2]).TBCTL.bit.PHSEN = TB_ENABLE;
    
    //
    同步时// TBCTR 相位负载(用于向上计数 HR 控制所需)
    //
    (* ePWM[2]).TBPHS.bit.TBPHS = TEMP_PHS;
    (* ePWM[2]).TRREM.BIT.TRREM = 0x100 + TEMP_REM;
    (* ePWM[1]).TRREM.BIT.TRREM = 0x100;
    
    LoadAction = 0;
    }
    其他
    {
    (* ePWM[2]).TBCTL.bit.PHSEN = TB_DISABLE;
    }
    
    EDIS;
    

    此致、

    Rj

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

    TRREM 没有影子寄存器。

      

    您能评论 TRREM 值更新吗? 我没有关于 TRREM 解决方法的技术信息。

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

    你好、Nima、  

    对于中断触发时间、我仍然有一些疑问、我认为周期的小数部分有一些不同的用法。

    如您 在此处所述 :

    因此、HRPWM 使用"延迟"元素工作。 这意味着 HRPWM 延迟未连接到时钟。 有一些实际的延迟元件会延迟信号、您可以启用不同数量的元件来延迟 PWM 信号的边沿。"

    及以上:

    '这是 TBCTR 的粗略步进=零事件。 它与 ePWM 的高分辨率部分无关。

    同样、如果抖动是 HR 的一部分、并且不存在于 ePWM 中的 OUTH HR、则在生成 ISR 时不会出现抖动。  "

    看起来 MEP 与正常分辨率 PWM 模块独立工作。 周期的整数部分由带有一个时钟的定时器计数器和 TBPRD 寄存器确定、周期的小数部分由 MEP 延迟确定(在 REM 中显示数字)。

    考虑这样的情况:PRD:PRDHR = 10.1、整数部分为10、因此不带 HR 的 PWM 的工作方式类似于带10的周期。 然而、实际完整周期为10.1、随着时间的推移、小数部分将在每个周期累积、并最终大于1、如下所示。

    粗调部分是否将处理小数的累积部分生成的整数?  这会影响中断触发周期吗?

    此致、

    Rj

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

    Ruj、

    在这一级别的细节方面、让我将其用于设计、以便为您的特定问题获得准确的答案。

    NIMA

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

    您好!

    是的、分数在多个周期内累积。 粗阶跃变化间歇性、当该分数累积超过粗阶跃边界时。
    中断总是在粗略值上生成(分数部分在中断生成中没有意义。  

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

    Nina 和 Subrahmanya、非常感谢您的讲解。

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

    您好!

    谢谢你。 请关闭该主题。