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.

[参考译文] TMS320F280049C:CLA 中断优先级

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1446738/tms320f280049c-cla-interrupt-priority

器件型号:TMS320F280049C
主题中讨论的其他器件:TMS320F280049

工具与软件:

我想按如下方式使用 TMS320F280049 MCU 查询 PFC CLA 中的中断优先级。 请查看它。

-。 查询内容:

  1.查询在 CLA 中设置中断优先级

  2. SDFM 检测中断优先级、如何在没有 PWM 控制中断干扰的情况下执行

ttplpfc_clatask.cla

  __attribute__(((interrupt)) void Cla1Task1 (void) // cla_trigger_SDFM1DRINT1、频率1.2MHz、 执行时间417ns

  __attribute__(((interrupt) ) void Cla1Task2 (void) // cla_trigger_EPWM3INT、频率100kHz、 执行时间833ns

谢谢。此致、

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

    许长镐:

    我正在查看该主题。 我很快就会回复您。

    谢谢!
    Susmitha

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

    Susmitha、您好!

    您能分享您的反馈吗?  

    提前感谢您的帮助。  

    此致、

    Yiseo Shin

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

    尊敬的 Yiseo:

    很抱歉耽误你的时间。 CLA 任务已经具有内置优先级:  

    "任务1具有最高优先级、任务8具有最低优先级。 2类 CLA 提供设置最低优先级任务(例如任务8)的选项、作为后台任务、该任务一旦触发、就会连续运行、直到用户终止任务或复位 CLA 或器件。 其余任务(1至7)保持优先级并在触发时中断后台任务。"

    F28004x 具有2类 CLA、因此您可以选择将任务8配置为可以在其中嵌套其他任务的后台任务。 与 C28x 上的中断相似、任务1-7将运行到完成并且无法嵌套。  CLA 将始终执行已启用和已标记的最高优先级任务。 在你的情况下、即使 EPWM 任务具有较低的优先级、它也会干扰 SDFM 任务的执行。

    解决此问题、我能想到的最佳方法是将 EPWM 任务功能拆分为2个(或更多)任务、这些任务的执行时间比 SDFM 触发之间的时间更短。 例如、任务2可由 ePWM 触发、任务3可由任务2触发软件。 您可以让任务2在最初时禁用 MIER 寄存器中的任务3、然后在任务1内重新启用任务3。

    这样一来、即使 ePWM 任务在 SDFM 任务之间执行、它也会在延迟下一个 SDFM 任务之前完成执行。 然后、在下一个 SDFM 任务完成执行后、启用并执行任务3以完成所需的 EPWM 功能。

    此致、

    Delaney

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

    您好、Delaney

    谢谢你。

    我了解解决方案。

    还有一个问题、如果我使用两个 CLA_TRIGGER_SDFM1DRINT1和 CLA_TRIGGER_SDFM1DRINT2进行交错电流感应、我是否可以在没有中断干扰的情况下使用它?

    __attribute__(((interrupt)) void Cla1Task1 (void)// cla_trigger_SDFM1DRINT1、频率1.2MHz、执行时间417ns

    __attribute__(((interrupt)) void Cla1Task2 (void)// cla_trigger_SDFM1DRINT2、频率1.2MHz、执行时间417ns

    此致、

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

    许长镐:

    如果您想仅使用这两个完全异相的任务、那么您需要确保两者的执行时间短于 period/2、这样在触发下一个任务时一个任务就不会完成执行。

    如果您要求同时执行这两个任务和 ePWM 任务、您肯定会看到一些干扰。 在这种情况下、我建议将 ePWM 任务以及 SDFM 任务分离为单独的任务(或缩短任务、从而缩短执行时间)。

    此致、

    Delaney