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.

[参考译文] TMS320F28379D:相同代码的执行时间在不同频率的 ePWM ISR 中是不同的

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1211990/tms320f28379d-the-execution-time-of-the-same-code-is-different-in-different-frequency-epwm-isr

器件型号:TMS320F28379D

每个 PWM 周期中断一次。  在25kHz PWM ISR 中中断代码的执行时间明显短于 50kHz PWM ISR 中。 此外、在25kHz 及以下情况下、执行时间相同。 在50kHz 及以上时、执行时间相同。

以下针对循环代码使用25kHz PWM ISR 中的32个时钟周期和50kHz PWM ISR 中的128个时钟周期。

之所以使用 for 循环、是因为当 PWM ISR 频率超过25kHz 时、运行 DELAY_US 函数将进入非法 ISR。

反汇编代码在不同频率下也相同。

SYSCLK = 200MHz

将  SVPWM_FULL 设置为5000或1000以更改频率。

--

谢谢、此致

耶鲁

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

    你好,耶鲁,

    由于只有您提供的信息、我最好查看编译器生成的汇编代码。 (CCS Options -> Build -> C2000 Compiler -> Advanced Options -> Assembler Options -> Keep 生成的汇编语言)

    是否有任何东西可以表明行为在高于特定频率时发生变化的原因? 我不确定空的 for 循环如何受 PWM 执行时间的影响。

    此致、
    Jason Osborn

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

    大家好、Jason、

    以下是客户提供的反汇编代码:

     100kHz

     20kHz

    似乎没有区别。  

    由于只有您提供的信息,我最好的建议是看一看编译器生成的汇编代码。 (CCS Options -> Build -> C2000 Compiler -> Advanced Options -> Assembler Options -> Keep 生成的汇编语言)

    您提供的方式与客户用于生成.asm 代码的方式是否不同?

    是否有任何东西可以表明为什么行为发生高于特定频率的变化? 我不确定空的 for 循环如何受 PWM 执行时间的影响。

    您能进一步解释一下吗?

    --

    谢谢、此致

    耶鲁

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

    你好,耶鲁,

    我看不到任何会导致此问题的东西。 您如何确定此过程所需的时钟周期数?

    此致、
    Jason Osborn

    请注意:.asm 生成选项、如果我没记错、应该大家都可以使用。 这是 CCS 的一部分。