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.

[参考译文] TMS320F280049M:全局加载功能测试

Guru**** 2540720 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/591900/tms320f280049m-global-load-function-test

器件型号:TMS320F280049M

您好、香榭丽舍

我的客户使用 F280049M 并测试 ePWM 功能。 启用全局加载时、TBPRD 更新比禁用全局加载功能延迟一个周期。

测试条件

第一个 PWM 周期为20us、EPWM1A 关闭/EPWM1B 打开

2.第二个 PWM 输出周期为50us,EPWM1A&EPWM1A 关闭

3、第三个 PWM 输出周期为5us、10us 交替、EPWM1A/EPWM1B 输出为50%占空比。 辅助输出

测试程序

[全局重新加载禁用/本地重新加载]:

当 TBCTR=0时、将 PWM1中断触发置位、并  在 ISR 中本地重新加载 TBPRD。

  后台循环中的 PWM 寄存器设置:GLDCTL[GLD]= 0、TBCTL[PRDLD]= 0、TBCTL2[PRDLDSYNC]= 0、AQSFRC[RLDCSF]= 0

测试波形(CH2:EPWM1A、CH3:EPWM1B、CH4:EPWM1中断信号)

[全局重新加载启用]

当 TBCTR=0时、将 PWM1中断触发置位、并 在 ISR 中全局重新加载 TBPRD。

反 向环路中的 PWM 设置:GLDCTL[GLD]= 1、GLDCTL[GLDMODE]= 0、GLDCTL[GLDPRD]= 1、GLDCFG[TBPRD_TBPRDHR]= 1、GLDCFG[AQCSFRC]= 1

TBCTL[PRDLD]= 0、TBCTL2[PRDLDSYNC]= 0、AQSFRC[RLDSF]= 0  

看起来 TBPRD 没有及时更新、但 AQCSFRC 可以及时更新。

测试波形:

您能告诉我是否有任何寄存器设置错误导致此问题吗? 或者您有什么建议吗? 谢谢!

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

    我可以告诉您的寄存器设置看起来是正确的。 我正在进一步调查。

    您是否已读回 GLDCFG[TBPRD_TBPRDHR]的内容以确保其确实已设置?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Devin、
    感谢您的回复。 您是指在 PWM ISR 中检查寄存器设置还是在 PWM 模块初始化后检查寄存器设置? 我是否应该在 PWM ISR 中更改 GLDCFGBPRD_TBPRDH]? 我在主循环中设置全局重新加载寄存器。 我没有在 ISR 中更改它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Lisa、

    您是否介意附加您正在使用的 C 文件? 我只需要处理 ePWM 设置和全局负载交互的部分。

    谢谢、

    Kris

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

    您好、Kris、

    我将单独向您发送邮件。 谢谢你。

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

    我将在本周晚些时候发送一个有关全局加载的工作示例。

    您可能需要尝试的一件事是在全局加载功能上使用单次触发模式。 您能否在写入寄存器的波形上显示(通过 GPIO 切换)? 您可以在写入所有影子寄存器后设置一次性模式、在下一次 CTR=0事件发生时、所有影子寄存器都处于已知状态。

    此致、
    Kris
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Kris、
    您可以看到绿色脉冲。 这是更新 TBPRD 的 ISR。 我没有启用一次性模式。 您是不是说我在 initPWM 状态下设置 GLDCTL[OSHTMODE]=1、并在 ISR 中设置 GLDCTL2[OSHTLD]=1来更新 TBPRD? 谢谢。