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.

[参考译文] TMS320F280025:ePWM 事件触发计数初始功能

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1137686/tms320f280025-epwm-event-trigger-count-initial-function

器件型号:TMS320F280025

您好!

ePWM 触发事件计数值的确切功能是什么

遗憾的是、我在数据表中找不到合适的描述。

初始值何时设置?  

"强制 SOCA 触发事件计数初始值"有何影响?

如果设置了初始值、对事件计数有什么影响? 是否在初始值设置得越早时产生中断?

提前感谢

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

    您好 Stefan、

    您正走在正确的道路上! 每次发生一个事件触发时、ET 模块都不会启动 SOC/中断(具体取决于您要配置的部分、在本例中为 SOC)。 相反,它会递增计数器寄存器。-当计数器达到预定义的周期值时,即 SOC 发生时。

    设置寄存器的初始值会按照其听起来的方式进行设置-计数器不是从0开始、而是从1开始每个周期(在您的情况下、根据您发布的图像) 1开始、这意味着在 SOC 发生之前、它需要少1个触发事件。

    此初始化何时发生? 每次发生 EPWM 同步事件时、根据 TRM 中的说明将初始化值加载到计数器中。 或者、 您也可以通过软件强制激活它! 据我所知、该复选框所做的就是在系统初始化期间运行该软件强制。

    相关寄存器、从器件的 TRM 中提取:

    • ETSOCPS (事件触发转换预分频启动)包含4位计数器以及4位周期值、这些值决定 SOC 发生的频率。
    • ETPS (事件触发预分频)使能上述操作、或者如果您不需要 4位、还包含2位计数器和2位周期来执行相同操作。
    • ETCNTINITCTL (事件触发器计数器初始化控制)启用初始化并包含软件强制位。
    • ETCNTINIT (事件触发器计数器初始化)包含计数器初始化的值。

    希望这个答案能够提供帮助、

    Jason Osborn

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

    您好!

    感谢 您的解释。

    [引用 userid="525429" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1137686/tms320f280025-epwm-event-trigger-count-initial-function/4223410 #423410"]就我所能说的,所有该复选框都是在系统初始化期间运行该软件强制的。

    这就是我要做的。 我想在系统初始化时初始化一次计数器。 但不是每个同步事件。

    目标是获得两个 SOC´s 之间的延时时间。 因此两个事件计数器都计数到2、但一个用0初始化、另一个用1初始化。

    希望这会为 SOC-A 和 SOC-B 生成交替触发器

    因此、方法是如图所示设置一个 SOC 触发器、并在启动后立即禁用初始化。

    或者是否有更好的方法?

    谢谢  

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

    您好 Stefan、

    我认为我看不到更直观的方法来实现您所需的功能-在第一个软件强制之后禁用初始化或将初始化值设置为0是实现这一目的最直接的方法。 我将注意到、我会注意您执行此操作的时间-我无法找到有关如果在同步事件期间/附近执行这些操作之一会发生什么情况的文档。 我会在 SysConfig 生成的 board.c 文件中的软件强制之后立即输入一行来禁用它、以确保在适当的时间执行它。

    此致、

    Jason Osborn