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:在 N2HET 中断上调用了错误通知

Guru**** 2478765 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/964636/tms570lc4357-wrong-notification-called-on-n2het-interrupt

器件型号:TMS570LC4357

您好!

我目前正在编写 custim N2HET 程序来监控输入信号。 此时、我将尝试让中断为特定指令工作。

为了简单起见、N2HET 程序只包含2条指令、生成一个恒定 PWM 输出信号:

L01 CNT{NEX=L02、REG=A、IRQ=ON、DATA=0、max=1、 请求= NOREQ};
L02 MCMP{NEX=L01、REQUESE=NOREQ、hr_LR=HIGH、en_PIN_ACTION = ON、COND_addr=L01、PIN=1、order=REG_GE_DATA、action=PULSEHI、RE=A、IRQ=OFF、DATA=1、hr_DATA=1};

它们被转换为 C 结构、如(HET IDE):

/* L01_0 */

0x00002C21、
0x00000001、
0x00000000、
0x00000000
}、

/* l02_0 */

0x00000000、
0x00400158、
0x00000081、
0x00000000

};

将此代码加载到 N2HET RAM 区域会导致我所期望的行为、即引脚 N2HET[1]上的恒定 PWM 信号。

奇怪的是、在设置 GLBCTRL 寄存器的"到"位后、我在通道11上接收到中断。 我会在通道10上产生中断(NHET1高电平中断)、但情况并非如此(HET TU1 0级中断)。 下面是在 ARM 矢量 IRQ (地址0x00000018)中设置断点时的寄存器值:

VIM 寄存器:

 

N2HET1寄存器:

最后是 RAM @0xFF460000的内容:

我不明白这里发生了什么。 我希望通过在指令的控制字段(位27:28)中设置请求类型参数来接收 HTU 通知、但显然情况并非如此。  

提前感谢您的反馈、并随时询问我是否可以提供任何其他信息。

纪尧姆

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

    您好!

    在 MCMP 指令中 、IRQ=OFF 将禁用中断的产生。 请尝试 IRQ=on

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

    您好!

    我已经尝试在 MCMP 指令中启用 IRQ 标志(控制字段= 0x00400159)、但问题仍然存在、我仍然收到有关 HET TU 1源(VIM 表索引11)的通知、而不是 NHET1高级中断(VIM 表索引10)。

    提前感谢您的反馈、

    纪尧姆

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

    这是我的仿真。 指令1的中断被生成:HETFLG 寄存器和 HETOFF1寄存器