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.

[参考译文] TMS320F280039C:如何分析代码对相位裕度的影响?

Guru**** 2484615 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1437804/tms320f280039c-how-to-analyze-the-impact-of-code-on-phase-margin

器件型号:TMS320F280039C

工具与软件:

尊敬的专家:

我在这里询问我的客户。

客户在此使用 F280039C 开发 PSU 产品。 他们最近发现、在此处添加新代码时出现了相位裕度问题、但该代码会在较慢的任务期间添加 、但是、它不会影响 EPWM5 ISR 150K。 当我们在较慢的任务期间不添加任何新代码时、 相位裕度 将为10 LSB/15K、当我们在较慢的任务期间添加任何新代码时、  相位裕度 将为 下面的8 LSB/12K。

我们检查 cmd 配置正常、将 编译器优化级别从-0L 3修改为0L 0、该问题将被消除。

我们检查 EPWM5_INT ISR 中断延迟、在1us 左右跟进 ePWM 零事件、EPWM5_INT ISR 150K 正常运行、但 相位裕度将随着此处添加的代码而变化。

我们检查了另一块硬件板、同样的操作和同样的问题出现在这里。

检查所有函数是否正常工作、 EPWM5中断占用率不高、这是正常的。

但当我们将"driverlib.lib"移至 memcpy 到 RAM 时、添加新代码、同样的问题将在此处消除。

 

在将 "driverlib.lib"从闪存移到 memcpy 到 RAM 之前、问题将发生、具体取决于 driverlib .text

将 "driverlib.lib"从闪存移至 RAM、并移至 memcpy 后、该问题将被解决。

那么、您能否分享您对 driverlib 的评论:sysctl.obj (.text:sysctl_selectXTALSingleEnded)? 客户使用内部时钟、代码正常运行。 但是 CPU 执行将取决于  driverlib:sysctl.obj (.text:sysctl_selectXTALSingleEned)是否位于此处? 您能给我们建议/目录吗? 谢谢。

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

    尊敬的专家:

    是否有任何代码会干扰 ADC 读取寄存器的时序或中断条目的时序?

    我们都知道 RPT 指令将 干扰 这里的中断进入。

    不同的指令是否有可能存储在不同的位置、从而导致不同的代码执行效率? 谢谢。

    谢谢。

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

    尊敬的绍兴市:  

    很抱歉响应延迟。 我正在研究这个问题、我们会给您回复。

    另请注意、通常情况下、从 RAM 执行代码比从闪存执行代码快。 请见部分 4.1.1从闪存执行  此处链接的编译器优化指南。  

    此致、

    Delaney

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

    尊敬的绍兴市:

    "相位裕度"是否意味着当 driverlib 对象放在闪存中时、其中一个 EPWM ISR 的执行时间更长? 如果是、这个 ISR 的内容是什么? 其中是否有大量 driverlib 函数调用? 因为这可能是由于闪存中代码的执行速度较慢。

    您还可以查看反汇编视图、以查看两种情况下正在运行的指令以及正在运行的指令数量是否有很大差异。 以下是可能影响中断延迟的其他因素:

    此致、

    Delaney