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.

[参考译文] F28M36P63C2:限定条件不适用于外部中断

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/986874/f28m36p63c2-qualification-does-not-work-on-external-interrupt

器件型号:F28M36P63C2

我们在产品中使用 TI Concerto 微处理器 F28M36P63C2ZWT。 有两个 GPIO 引脚(GPIO12、GPIO13)被用作外部输入来触发 I/O 上发生的事件(下降沿) 为了滤除噪声、我们在这两个 GPIO 引脚上实施鉴定时间设置。 我们期望在输入信号脉冲宽度超过鉴定时间时触发中断。 但是、当我们使用函数发生器生成的给定脉冲对其进行测试时、我们发现只要脉冲宽度大于140ns、无论在限定时间中设置了什么、都可以触发中断 (即使在使用周期的最大0xFF 和6个样本的情况下、我们也在17us 进行了测试)。
下面是我们将 GPIO12设置为 XINT3的代码、鉴定时间为17us。

//设置鉴定时间段
GpioCtrlRegs.GPACTRL.bit.QUALPRD1 = 0xFF;//对于 GPIO 8-15、2*(6-1)* 6.7*255 (@150MHz)= 17、085ns
GpioG1CtrlRegs.GPAMUX1.bit.GPIO12 = 0;// GPIO
GpioCtrlRegs.GPADIR.bit.GPIO12 = 0;//设置为输入
GpioCtrlRegs.GPAQSEL1.bit.GPIO12 = 2;//使用6个样本的输入限定器
GpioTripRegs.GPTIP6SEL.bit.GPTIP6SEL = 12;//将 GPTIP6SEL 行程输入3 (XINT3)映射到 PA0_GPIO012
XIntertRegs.XINT3CR.bit.Polarity = 0;//0-下降沿、故障事件低电平有效
XIntertRegs.XINT3CR.bit.ENABLE = 1;//启用外部中断

根据 TI 文档 SPRS825F、中断脉冲持续时间应是带有限定符的 tw (QSW)+1Tx (SCO)。 当我们将 QUALPRD 设定为0xFF 时,它应该给出 tw (QSW)=2*(6-1)*255*6.7ns=17,085ns。 长度小于此值的任何脉冲都不应触发中断。 我们测试了脉宽为100ns 至20us 的输入信号。 只要宽度大于140ns、它就会触发中断。
如果上面的代码没有限定符与中断一起工作、会出现什么问题?

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

    Yong、

    您的资质审核代码对我而言似乎是合理的。 您是否已禁用 EALLOW 保护?

    请运行代码并使用 CCS 读回所有写入的值。 "Expressions"窗口或"Registers"查看器应允许您查看上述写入的值、这些值是否符合您的预期?

    此致、
    Cody

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

    您好、Cody、
    感谢您的建议!
    我们在鉴定设置的开头确实有 EALLOW、并通过 EDIS 来禁用对寄存器的访问。
    我使用 CCS 监视寄存器值、发现 GpioCtrlRegs.GPACTRL.bit.QUALPRD1在开始时被设置为0xFF、并且出于某种原因、它在电路板初始化结束时被更改为0x02。
    我将鉴定移至电路板初始化的末尾、鉴定时间按预期工作。 当时它一直保持在255。 使用函数发生器、脉冲宽度为15us 的滤除、不会触发中断。
    当脉冲宽度调谐到18us 时、中断被触发。
    再次感谢您的帮助! 您可以立即关闭此 TT。

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

    Yong、

    这是一个很棒的消息。 我想 您的代码中可能还有另一条语句会更改此值。 搜索代码的最佳方法是按"CTRL+H"、然后使用"file search"选项卡搜索"QUALPRD"或类似的内容。 另请注意、您可以调整搜索范围以仅关注您的项目。

    希望这对您有所帮助。

    此致、
    Cody