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.

[参考译文] RM46L852:不一致的 GIO 中断延迟

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1158991/rm46l852-inconsistent-gio-interrupt-latency

器件型号:RM46L852

您好、TI、

我们一直在为时序关键型应用使用 RM46、并使用 GIOA[6]/[7]作为输入来触发其 ISR gioHighLevelInterrupt ()。
为了测量进入中断的时间、我们将在中断例程中设置引脚、并测量施加的输入和设置的引脚之间的延迟。

μs、从触发到引脚设置的时间大约为1.5 μ s、这对于我们的应用来说是合适的。 μs、它不完全是1.5 μ s、而是大约1.5 μs±120ns。
我们真的希望尽可能减少这种差异、即使是以时间为代价进入例行程序-我们只是希望它尽可能保持一致。
设置引脚的 ISR 设置为 FIQ。 还有一些其他 FIQ 中断、我们已经尝试禁用它们、但问题仍然存在。

我们已经尝试过的一些解决方案:

-我们已尝试在禁用所有其他中断的情况下运行该程序。
-我们尝试在 ISR 内部设置其他引脚,以查看设置引脚的时间是否是问题所在。
-我们尝试在中断触发器上设置高/低/任一极性。

那么问题基本上是-我们是否可以做任何事情来确保处理器每次都需要相同的时间来进入中断例程? 它不一定要比现在更快、只是一致。

提前感谢。

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

    您好、Fred、

    GIO 中断的 IRQ 延迟大约为45个 CPU 时钟周期。 请求 中断时、延迟也取决于 CPU 的状态。  例如、如果 CPU 正在从具有等待状态的存储器中读取、则需要等待此读取完成、然后才能跳转到中断服务例程。

    您可以启用 IRQ 以使用 CPU 的 VIC 端口、并将 FIQ 留给其他更重要的 INT、例如 ESM。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="503718" URL"~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1158991/rm46l852-inconsistent-gio-interrupt-latency "]我们一直在与 RM46合作开发时序关键型应用程序,并使用 GIOA[6]/[7]作为输入来触发其 ISR gioHighLevelInterrupt ()。

    从数据表的快速浏览中可以看出、GIOA[6]和 GIOA[7]的引脚也可以针对增强型高端定时器模块(N2HET)进行多路复用。

    N2HET 是否可用于帮助您的时序关键型应用?

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

    切斯特、您好!
    我们之前一直在研究 N2HET、但后来决定改用 RTI 模块。 但是、在您的回答和阅读其他时序相关主题后、我决定让 N2HET 再次运行、它确实起了作用! 中断只会触发几个 ns 的变化。
    从使用 GIO 模块触发中断切换到使用 N2HET 模块可以解决该问题。

    对于可能遇到此帖子的其他人、我的解决方案基于此帖子:
    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/759153/rm46l852-n2het-as-gio-interrupts

    感谢您花时间回复!

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

    QJ、您好、感谢您的快速回答。
    在阅读您的回答后、我尝试改用 VIC 端口、但我未正确实施该端口或该端口不起作用。 无论如何、我都没有看到中断触发时间一致性的提高。 最后、我使用 N2HET 模块来触发中断、从而解决了问题。