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.

[参考译文] TMS570LS1227:ESM 低中断时序问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1215234/tms570ls1227-esm-low-interrupt-timing-issue

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGEN

您好!

我正在一个项目上、并启用了一些中断(使用 IRQ 启用了 SCI 和 SCI2、使用 FIQ 启用了 RTI Comparex)。  我正在研究如何为 ADC 奇偶校验错误添加一个 ESM 低电平中断处理程序、但我发现有些令人困惑的行为。  RTI 被用来为主循环中的函数执行设定标志、此标志的时序十分可靠、直到我在 VIM 中启用 ESM 低中断处理程序。  一旦我启用此功能、似乎就会中断正常执行方案。

使用 ADC 的函数通常以~70us 或40微秒左右的速度执行、其中的 HalCoGen 表示为所使用通道的采样和转换时间。  一旦 ESM 低中断被启用、这个执行时间将膨胀到大于1ms。

其他时序也会发生类似的改动。  好像在 FIQ 中执行的 RTI 中断本身的执行时间要长得多。   

虽然我认为我已经将配置更改隔离为启用 ESM 低中断、但是我已经在父代码库(其 RTI 中断位于 IRQ 中、但是没有启用很多启动测试)上启用了它、而且没有对时序进行类似的更改。

有什么想法,为什么会发生这种情况?  我在 TRM 中没有看到任何关于使用 ESM 低电平中断的提及、它对系统中的时序有什么影响、 根据我的理解、在 IRQ 中启用 ESM 低电平中断似乎并不常见、这会对 FIQ 中 RTI 的执行产生任何影响

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

    您好、Jacob:

    启用 ESM 低中断后,该执行时间将升至大于1ms。

    如果启用奇偶校验并且启用了 ESM Low (ESM 低),如果存在任何奇偶校验错误,读取结果将需要更长的时间。   

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

    感谢您的回复。

    为确保我的实现正常工作、我有一个测试构建、该构建会通过启用奇偶校验控制寄存器中的 TEST 位偶尔注入奇偶校验错误。  虽然我可以确认偶尔会发生奇偶校验错误(因为我是直接导致这些错误)、但通过 GPIO 切换进行一些基本的时序分析会显示持续占用上述时间(~1.2ms)、而不考虑奇偶校验错误的存在。

    暂时、我已经发现在读取后禁用 ESM 低电平中断和手动轮询 ESM 组1状态寄存器实现了同样的目标、而在系统的其它地方保留了所需的时序。

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

    我进行了类似的测试、但没有看到问题。 启用 ESM 低电平中断不会影响 RTI 和 ADC 的执行:  

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

    这是我用于测试的 main ():

    RTI:比较0中断被启用、比较0周期为100us (GIOB.1切换)

    2.启用或禁用 ESM 低电平中断(VIM 通道20),以及 ESM 组1通道19

    ADC 采样由 GIOB.0上升沿触发