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.

[参考译文] AM2634:中断异常问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1391816/am2634-interrupt-exception-problem

器件型号:AM2634

工具与软件:

如图所示、载波的频率为80k、对应的 PRD 为2500、黄色是 ADCint1 (LC)的中断运行时间、绿色是 ADCint2 (DC)的中断运行时间、而紫色是 EPWM31 (计时器)的中断运行时间。 当 CMPD=10时、触发 SOCA 脉冲事件。 此时、ADC3通道的 SOC1开始转换。 在时间 T1转换后、生成 EOC1信号以触发 ADCint1中断。 当 CMPC=1200时、会触发 SOCB 脉冲事件、此时 ADC3通道的 SOC3开始在 T2转换后从 SOC3、SOC4、SOC5转换为 SOC6、SOC6、SOC6、这会生成 EOC6信号以触发 ADCint2中断。

症状1:ADCint2中断被 EPWM31中断抢先一次、ADCint1中断再次被抢占

问题1:如上图所示、为什么 ADCint2 (DC)中断优先两次?

猜测原因:可能是因为 EPWM31 (计时器)中断早于 ADCint2 (直流)中断、因此 ADCint2 (直流)中断延迟一个周期、而且当 EPWM31 (计时器)中断结束时、EOC1信号会在中断的2.4us 内生成以触发 ADCint1 (LC)中断。 由于 ADCint1 (LC)中断的响应优先级高于 ADCint2 (DC)中断的响应优先级、因此首先运行的 ADCint1 (LC)中断会导致两个连续的 ADCint2 (DC)中断。

症状1:ADCint2中断被 EPWM31中断抢占后、ADCint2中断再次被 ADCint1中断抢占、前一周期的 ADCINT2中断消失

问题2:如上图所示、为什么 ADCint2 (DC)中断在被抢占两次后消失?

猜测原因:可能是因为 EPWM31 (计时器)中断早于 ADCint2 (直流)中断、因此 ADCint2 (直流)中断延迟一个周期、而且当 EPWM31 (计时器)中断结束时、EOC1信号会在中断的2.4us 内生成以触发 ADCint1 (LC)中断。 由于 ADCint1 (LC)中断的响应优先级高于 ADCint2 (DC)中断的响应优先级、因此首先运行的 ADCint1 (LC)中断会导致前一周期的 ADCint2 (DC)中断在此周期中运行。 但是、LC 的运行时间太长、因此当 SOC6在当前周期开始转换时、上一周期 ADCint2 (DC)中断的触发源 EOC6将被忽略。 因此、上一周期的 ADCint2 (DC)中断被忽略、只有当前周期内的 ADCint2 (DC)中断运行。

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

    附加备注:

    这是第一张图片

    这是第二张图片

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

    附加备注:

    这是第一张图片

    这是第二张图片

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

    嗨、

    能否与我分享您的配置?

    谢谢。此致、
    Akshit

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

    ADCint1 (LC 循环) ADC 中断配置

    ADCint2 (直流环路) ADC 中断配置

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

    您好!

    您已经尝试如本文档中描述的那样优化 ISR: https://software-dl.ti.com/mcu-plus-sdk/esd/AM263X/latest/exports/docs/api_guide_am263x/OPTIMIZING_REAL_TIME_CONTROL_APPLICATIONS.html

    请告诉我这是否有助于解决他的问题!

    此致、
    Akshit

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

    我想知道导致以下两个问题的原因。

    ADCint2 (DC)中断为什么被优先两次?

    为什么 ADCint2 (DC)中断在被抢占两次后消失?

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

    ADCint2 (DC)中断为什么被优先两次?
    ->这看起来可能是 ISR 之间的优先级问题,你是否可以尝试更改优先级,看看它是否仍然存在?

    为什么 ADCint2 (DC)中断在被抢占两次后消失?
    ->中断消失意味着什么、我无法从波形中获取。
        是否意味着您缺少一个中断? 如果愿意、你能够检查中断溢出标志吗? 或者让我知道它是否意味着其他东西。

    此致
    Akshit