TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS570LC4357:GIO 中断处理

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1127471/tms570lc4357-gio-interrupt-handling

器件型号:TMS570LC4357
主题中讨论的其他器件:TMS570LS1224

TI 团队、

我 将外部时钟信号(5MHz)作为 GIO 引脚(GIO 端口 A、7)上的中断。 在 ISR 中、我要切换 GIO 引脚(GIO PORta、0)、理想情况下、切换速率(在 ISR 中定义)应与时钟速率(即5MHz)相同、但接近~740KHz。

我想知道 GIO 引脚处理中断的最大频率是多少。 此外、您能否建议应执行哪些操作才能在此频率下对中断进行采样。

我正在附加必要的文件

e2e.ti.com/.../attachments.zip。

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

    您好、耐受、

    ISR 执行时间应短于中断事件的间隔。 ISR 需要 保留堆栈上 ISR 使用的任何寄存器、并在返回前将其恢复、ISR 需要读取外设的中断矢量以清除标志。 所有这些操作也将需要周期。 请使用 PMU 来测量 ISR 所需的周期数。

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

    您好、Wang、  

    我将使用 PMU 来测量 ISR 所采用的周期。 但现在、我以300MHz 的频率运行 CPU 时钟(GCLK)、因此时间周期为3.3ns。 GIO 切换频率为~740Khz、这意味着 GIO 引脚切换所需的时间为1.35us。 因此、通过此类比、简单的 GIO 切换函数需要将近400个时钟周期。 我的理解是正确的、或者我缺少一些东西、因为 GIO 切换函数的400个时钟周期会降低性能。

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

    您的中断每0.2us (5MHz)发生一次、并且您的 GIO ISR 尝试切换 GIOA[1]引脚。 我认为在 TMS570LS1224上切换 GIO 引脚(gioToggleBit())大约需要450ns (在 TMS570LS1224 Launchpad 上测量)。  

    [引用 userid="488031" URL"~μ C/support/microcontrollers/arm-based microcontrollers-group/arm -based-microcontrollers/f/arm -based-microcontrollers-forum/1127471/tms570lc4357-gio-interrupt-handling /4184677#4184677"]通过引用引脚切换时间、GIO 频率为~740Khz [

     我不明白你的观点。 GIO 切换函数是否每1.35us 调用一次? 和1.35us 是使用 RTI 中断确定的?