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.

[参考译文] TMS320F28P550SJ:PWM CTR =零中断触发时间抖动

Guru**** 2611705 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1570566/tms320f28p550sj-pwm-ctr-zero-interrupt-trigger-time-jitter

器件型号:TMS320F28P550SJ


工具/软件:

您好专家

客户反馈他们发现 PWM CTR =零中断触发延迟未修复。 测试方法是、它们是设置的 AQ 块 PWM 在 CTR = ZERO 时设置为高电平、 同时、设置 A  PWM 中的 GPIO 为高电平  CTR= ZERO 中断 、并发现 2 个输出之间的上升边沿间隔在每个触发器中是不同的:

  • 您可以看到第 1 个间隔为 186ns:

  • 第二个间隔为 180ns

  • 还有一个 400ns 的间隔、但没有图像反馈。

代码中只有 PWM 中断、没有其他中断阻止 PWM 中断:

请帮助您了解为什么会发生此间隔、以及时间间隔中为什么会出现抖动?

谢谢

Joe

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

    您好专家  

    您可以帮助调查这个问题吗?

    谢谢

    Joe

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

    Joe、

    这两个设置不能保证彼此同步、因为一个在硬件 (ePWM) 中设置、另一个在 ISR 中使用软件 (GPIO) 设置。 一旦 ePWM 触发 ISR、在保存上下文、进入 ISR、然后设置 GPIO 时会存在延迟、以便这些时序在每个周期一位地发生变化。 如果您想要同步这两项内容、您必须找到硬件连接、而不是通过软件进行连接。

    此致、

    Sumit

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

    嗨、Sumit

    感谢您的回复、很抱歉您的假期延误。 该测试不是要将 PWM 输出同步到 GPIO、而是要测试中断延迟、那么您能帮助解释中断延迟的不同之处吗? 最佳情况是什么(最小中断延迟)、最坏情况是什么(最大中断延迟)?

    谢谢

    Joe

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

    Joe、

    请参阅以下 e2e 帖子、解释 您的 场景:  了解 C2000 中断延迟 

    通常、对于内部中断、有 14 个周期延迟、外部延迟为 16 个周期。 约为 100ns、仅用于中断。 之后、使用 API 写入 GPIO 将增加该时间。 最小延迟可能会大幅增加、具体取决于 CPU 的当前状态和其他系统因素:  

    • 禁用中断 (INTM):  C2000 在进入 ISR 时自动禁用进一步的中断。 如果在主代码中也手动禁用中断、任何传入的中断都将延迟、直到重新启用中断。
    • 多周期指令:  CPU 必须先完成任何当前执行的指令、包括多周期指令、然后才能处理中断。  RPT (重复)循环之类的指令根本不能中断。
    • 存储器等待状态:  如果从较慢的等待状态存储器(如闪存或外部存储器)访问代码或堆栈、则延迟会增加、因为在存储器访问完成之前 CPU 无法处理中断。
    • 低效代码:  长而低效的主循环可能会延迟中断。  asm(" IDLE"); 在 CPU 没有其他事项时使用 IDLE 指令是确保其处于一致的中断就绪状态的一种方法。
    • 中断优先级:  C2000 有一个外设中断扩展 (PIE) 模块、可优先处理中断。 如果正在处理较高优先级的中断、则会延迟较低优先级的中断。
    • ISR 复杂度:  硬件延迟仅考虑到达 ISR 第一条指令所需的时间。 总响应时间包括保存和恢复寄存器所需的任何指令以及执行 ISR 的时间。
    • 外部引脚鉴定:  对于外部中断、施加到输入引脚的任何去抖或鉴定逻辑都将增加额外的延迟

    此致、

    Sumit

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

    嗨、Sumit

    感谢您的回复、PWM 中断的长延迟时间 (~400us) 是由之前的中断超时引起的。

    此致

    Joe