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.

[参考译文] CCS/F28M35H52C:TI-RTOS 和 EPWM1 INT 冲突

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/810313/ccs-f28m35h52c-ti-rtos-and-epwm1-int-conflict

器件型号:F28M35H52C
Thread 中讨论的其他器件:controlSUITE

工具/软件:Code Composer Studio

我们在计划中使用 ti-RTOS 进行任务分配。 现在、我们发现 PWM 更新的系统和 ADC 电流样本正在移位。 我们希望每次都有相同的速度。 我们以前使用了中断模式、SYn 工作正常。 因此、我有两个问题需要帮助:

1.我们是否可以使 PWM 更新和 ADC 电流采样 与 ti-RTOS 同步?

2.如果无法  同步、我们是否可以将 ti-RTOS 与中断模式(例如 EPWM1 INT)混合使用? 我尝试过这种方法,但发现操作系统在进入 Task_sleep()时将进入 hwi.c 和 StackOverflow;

提前感谢、

Peter

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

    Peter、

    您能更详细地描述一下您想要实现的目标吗?

    如果您正在寻找一种降低中断延迟的方法、请看 一下:processors.wiki.ti.com/.../BIOS_for_the_28x
    以下网址: processors.wiki.ti.com/.../File:C28_zero_latency.pdf

    我不确定“混合中断模式”和堆栈溢出的含义。  您是否尝试增大系统/中断堆栈的大小?  如果您要堆叠或嵌套中断、这可能是必要的。

    此致、
    Scott

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

    您好、Scott、

    我担心的是 TI-RTOS 和 TI 中断系统之间的关系。 两者独立运行良好、但 在集成和协同工作时失败。 我已经发现、当我初始化 PIE 表并启用 EINT/ERTM 时、RTOS 使用内部中断并更改 IER 等、并且 RTOS 触发 INT14 (CPU-Timer2、对于18个 TI/RTOS 使用、可在 P116、SPRUH22G 中找到)。 我认为这是 RTOS 和 中断系统之间冲突的证据。

    您能否帮助找到一些对 RTOS 非常了解并提供解决方案的人?

    谢谢、

    Peter

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

    您好、Scott、

    我认为问题是由于 RTOS 和中断系统(例如 PIE、EPWM1)之间存在冲突。 我发现他们都使用中断、IER 等 我发现他们可以独立地成功工作、如果他们一起工作就会失败。

    您能否提供更多有关如何在同一程序中使用它们而不发生冲突的信息?

    谢谢、

    Peter

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

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

    Scott、  

    您是否有一些 同时使用 RTOS 和中断系统的项目示例(如 controlSUITE 中的示例)?  或者、您是否知道有人以前使用过这种"复用"模式? 到目前为止、我独立使用 RTOS 或中断系统(PIE、EPWM1_INT 等)的情况良好、并且在尝试同时使用它们时失败。

    谢谢、

    Peter

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

     请忽略此项?。 这是一个测试消息、我之前的消息发出两次。 可能是由于网络造成的。  

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

    尊敬的 Peter:

    我在内核开发团队… 但我没有使用过 controlSUITE。 :o/  

    由于使用操作系统时中断配置和处理的方式差别很大,因此典型的方法是将现有的中断处理代码(例如使用 controlSUITE 应用程序)转换为使用 TI-RTOS 的机制。  我们不建议尝试使用“混合模式”,因为可能存在不明显的冲突和问题。  对于 TI-RTOS、仍然可以选择使用未发送的最小延迟中断(如该 wiki 页面和 C28_zero_later.pdf 中所述)。  

    如果您还没有看过这一模块,这里有一个很好的培训模块,介绍如何配置 TI-RTOS 内核并使用中断: https://training.ti.com/ti-rtos-workshop-series-5-10-using-hwi  希望这将有助于澄清您遇到的问题以及如何配置和处理 TI-RTOS 内的中断。  本视频将讨论 C28x 的细节。  

    此致、
    Scott

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

    您好、Scott、

    感谢您的建议。 根据它、我尝试使用"未发送的最小延迟中断"。 我根据'C28_zero_later.pdf '创建了一个 INT。 但它不起作用。 请帮我找出问题所在? 我截屏配置代码(几乎与 pdf 相同、只是我使用 EPwm2而不是 Cuptimers)。

    此致、

    Peter

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

    Peter、

    我在您发布的屏幕截图中看不到任何问题。  由于您要写入 ETCLR、我假设您使用的是 EPWM2_INT、这是正确的吗?

    您是否查看了状态位、以查看是否实际生成了中断并将其提升到 CPU、但中断并未提供服务?

    此外,作为第一步,您可以尝试在 SYS/BIOS 中将 PWM 中断添加为“正常”中断,并且一旦该中断正常工作,它将成为零延迟中断,作为第二步。

    我将在本周剩余的时间内离开办公室。  如果这对您来说仍然不起作用、您是否可以向我发送整个项目以便我尝试进行调试?

    谢谢、
    Scott

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

    Peter、

    我刚刚意识到您现在正在尝试使用 EPWM2、但前面的问题与使用 EPWM1时遇到的问题有关。  您不再使用 EPWM1了吗?

    谢谢、
    Scott

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

    Peter、

    这是否得到了解决?

    Todd

    [6/28更新:将此标记为 TI 认为已解决、因为原始海报中没有活动]