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.

[参考译文] TMS320F28335:TMS320F28335 ePWM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/591609/tms320f28335-tms320f28335-epwm

器件型号:TMS320F28335

您好、先生、

我将 F28335用于某些电力电子应用。 我的 ePWM 具有100kHz 的开关频率。 因此 、.TBPRD 已设置为750、因此 ePWM 中断将每10us 出现一次。 (适用于100kHz 开关频率)。 Burt 由于我的应用需要更大的计算能力,我希望中断在每6个事件发生一次,即60 us 之后,但希望保持 TBPRD=750,即保持开关频率不变。

应用详细信息:对于某些信号处理和控制应用、我必须计算花费54 μ s 的数据。 但电力电子系统的开关频率为100kHz。 因此、我将在每60us 后计算一个控制占空比、该占空比将馈送到逆变器(PES 系统) 6个开关周期、因此希望中断在6个事件后产生。

谢谢。

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

    如何使用具有60us 时序的 CPU_TIMER ISR?

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

    德班扬

    您是否考虑在代码的这两个部分之间进行一些握手? 您可以在计算完成时设置一个标志、然后将您的 EPWM ISR 封装到一个"if"语句中、该语句会检查您的标志是否已设置、否则它只会返回到您的应用程序代码。

    我认为这种类型的解决方案在信号处理所需的时间比预期的要长的情况下可能更稳健。(可能发生这种情况的一个示例 是可能挤占信号处理代码并延迟信号处理代码的中断)

    此致、
    Cody

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、
    但我的 PWM 中断每10us 就会出现一次、我需要该中断来生成100kHz 开关频率的 PWM 脉冲。 我需要在60us 内完成计算、然后更新占空比。在下一次计算完成之前、我需要 PWM 中断将该占空比保持6个周期。 我该怎么做?

    我还在研究每6个周期后调用 PWM 事件、但发现最多可以将其延迟3个周期。
    请帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、
    计算是实时的、我需要完成它以找到转换器的占空比。 计算所需的时间超过10us、这是生成 EPWM 中断所需的时间。 您能建议一种稍微详细的方法吗?


    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我的意思是:
    ePWM 计时器= 10us
    CPU_TIMER = 60us

    在 CPU_TIMER 中完成计算后、您会发出一个标志、当 ePWM_TIMER 检测到这种上升标志->更新占空比时、会立即发出该标志。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、
    感谢你的帮助。 我会研究这个问题,如果我遇到任何问题,我会回来的。 再次感谢。

    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    很酷! 随时向我们提供最新信息。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、
    我还有其他几个问题。 如果他们太新手、我要道歉。


    如果我使用 PWM 中断生成占空比、它会每10us 生成一次中断(我的 fs=100kHz)。 是否有任何方法可以在每6个事件(即60us)上生成中断? 这可以使我的工作更加轻松。


    此外、如果每60us 使用一次 CPU 定时器及其中断、并使用一个 ewpm 中断(每10us 一次)、则在第6个周期中不会出现任何问题(如果考虑同步时钟) 何时需要评估这两个中断?

    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、先生、
    您是否告诉我开始计算、初始化 flag=0;然后进行计算并使 flag=1;然后只有当 flag=1时、才能进入 ePWM ISR?

    那么、生成的中断是否会在 FLAG = 1前执行? 它是否会给 ePWM ISR 带来任何问题?


    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    德班扬
    是的、我认为 ISR 中包含一条"if"语句、用于检查是否设置了标志。 如果设置了该标志、则执行代码以调整 PWM 并清除该标志... 如果未设置该标志、则递增计数器并检查是否应为下一次迭代设置该标志。

    此致、
    Cody