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.

[参考译文] TMS320F28P550SG:ePWM DBCTL 全局负载

Guru**** 2538955 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1553427/tms320f28p550sg-epwm-dbctl-global-load

器件型号:TMS320F28P550SG
主题:SysConfig 中讨论的其他器件

工具/软件:

尊敬的 Champs:

我们发现、在使用 SysConfig 配置全局加载函数并启用 DBCTL 的全局加载函数时、DBCTL.POLSEL 和 DBCTL.OUT_MODE 寄存器会被清除为 0。  

在单步调试期间、在运行 EPWM_enableGlobalLoadRegisters 之前正确配置 DBCTL。

但是、在执行 EPWM_enableGlobalLoadRegisters 后、寄存器会清零。

这是什么原因?

谢谢!

 

此致、

Julia

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

    Julia、

    在全局加载模式下运行时、 DBCTL.POLSEL 可以同步多个 ePWM 模块的配置。  全局加载机制不是单独配置每个模块的极性、而是允许 DBCTL 在为全局加载启用的所有 ePWM 模块之间同时更新包括寄存器在内的影子寄存器。  这意味着如果 DBCTL.POLSEL 是选择用于全局加载的寄存器的一部分(通过位) GLDCFG 、则其值以及其他选定的寄存器将在定义的同一事件中从影子寄存器传输到活动寄存器 GLDCTL[GLDMODE]。  这是为了确保多个 ePWM 模块之间的死区极性设置保持一致。 您可以检查该设置、因为这是主设置、将覆盖您单独的 ePWM 设置。
    此致、
    Sumit
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Sumit、

    我认为这种情况与 下面的主题类似。

    https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000-microcontrollers---internal/f/c2000-microcontrollers---internal-forum/1388434/tms320f280039-aq-global-load-issue?tisearch=e2e-sitesearch&keymatch=global%25252525252520load%25252525252520AND%252525252525200#

    配置 EPWM_enableGlobalLoadRegisters 似乎确实会将相应的寄存器设置为全零、因此正确的方法是首先启用 EPWM_enableGlobalLoadRegisters、然后初始化该寄存器。

    在 SysConfig 的生成代码中、AQ 模块和 CC 模块正确、 EPWM_enableGlobalLoadRegisters 位于 AQ/CC 配置之前

    但对于 DB 模块、 在 DB 配置后的 EPWM_enableGlobalLoadRegisters、这将导致此问题。

    SysConfig 生成代码的顺序无法更改、因此这似乎会导致 DB 配置错误。 您能帮助修复此问题吗? 现在、客户需要使用 susconfig。

    谢谢!

     

    此致、

    Julia

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

    如果有 Sysconfig 错误、您可以通过在 board_init () 之后的 main 函数中写入所需的 API 来快速解决此问题、这是由 sysconfig 文件生成的。 例如、在下面的代码中、我通过在电路板初始化之后调用 API 来覆盖 EPWM 时钟分频器配置。 同时、我会在内部报告此错误以修复它。

    此致、

    Sumit