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.

[参考译文] SK-AM62-LP:如何将 M4 GPIO 中断触发类型配置为下降沿

Guru**** 2463050 points
Other Parts Discussed in Thread: SK-AM62-LP, SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1465883/sk-am62-lp-how-to-configure-the-m4-gpio-interrupt-trigger-type-to-falling-edge

器件型号:SK-AM62-LP
主题中讨论的其他器件: SysConfig

工具与软件:

您好、TI 专家:

我在 SK-AM62-LP 平台上工作、需要为 MCU M4侧将 GPIO 中断配置为下降沿、但我发现中断将在双侧边沿上触发、

即、下降沿和上升沿都将触发中断、而我 只需要下降沿!!

我测试了2个引脚:  MCU_GPIO0_20、 MCU_GPIO0_15、 会发生此问题。

随附的2张图片是我的代码和配置。

非常感谢。

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

    您好!

    感谢您的提问。

    我已获取您的意见并进行处理。 请等待一段时间再回来。

    此致、

    Tushar

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

    您好!

    我已经尝试了在我的末尾举个例子,它对我来说是很好的。

    请在下面找到附加的工程。

    Project - gpio_input_interrupt_am62x-sk-lp_m4fss0-0_nortos_ti-arm-clang.zip

    此致、

    Tushar

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

    Tushar、您好:

    感谢您的答复

    但是、我无法打开上面的链接:  

    [报价 userid="16414" url="~/support/processors-group/processors/f/processors-forum/1465883/sk-am62-lp-how-to-configure-the-m4-gpio-interrupt-trigger-type-to-falling-edge/5626298 #5626298"]gpio_input_interrupt_am62x-sk-lp_m4fss0-0_nortos_ti-arm-clang.zip

      抱歉,您所请求的页面不存在。 请使用上面的搜索表单找到您感兴趣的信息。

    请您确认一下、谢谢!

    此致、

    Walter

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

    你好、Walter、

    我也无法访问该项目  。

    Tushar 已离职至2月14日。

    我看到同事的一封邮件说这非常紧急、您需要解决方案。

    我可以让 Tushar 再次分享同一个项目. 如果他不能做到,那么我可以给补丁。

    此致、

    Anil。

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

    您好、Walter、

    对于此处的延迟、我们深表歉意。 我已在上面的链接中重新上传该项目。

    请访问 https://e2e.ti.com/.../5626298。

    此致、

    Tushar  

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

    您好、 Tushar  

    还有一个问题。

    客户发现中断回调函数"多次"触发、即使它们仅触发一次低电平。 (MCU_GPIO0_23、3.3V)

    你有什么建议吗?

    错误消息如下所示。

    谢谢

    Gibbs

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

    嗨、Gibbs、

    由于是手动连接/断开、中断次数始终较高。 请参阅下图。

    请在再次运行示例之前执行 SoC 复位、以避免上述错误。

    此致、

    Tushar

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

    您好、 Tushar

    我认为"键压检测太多"是由于开关(跳接接触)反弹问题,所以我们需要"去抖"机制,不是吗?

    我们是否可以使用 SW 来实现"去除回弹"?

    如果我说什么问题、请更正我。

    非常感谢

    Gibbs

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

    嗨、Gibbs、

    我认为"太多按键检测"是由于切换(跳转接触)反弹问题、

    是的、它经常在低到高之间波动、这就是我们看到大量按键的原因。

    [报价 userid="533255" url="~/support/processors-group/processors/f/processors-forum/1465883/sk-am62-lp-how-to-configure-the-m4-gpio-interrupt-trigger-type-to-falling-edge/5663837 #5663837"]

    我们是否可以使用 SW 来实现"去除回弹"?

    [报价]

    所有引脚都不支持去抖功能。 此外、当 GPIO 在20 MHz 上运行时、我们可以拥有的最大 GPIO 去抖周期为256us。

    希望上述内容得到澄清。

    此致、

    Tushar

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

    Tushar、您好!

    请看下面的图片。

    在这里、用户可以配置、直至去抖周期以毫秒为单位。

    要配置去抖周期、用户无需为 GPIO IP 选择任何时钟设置。

    用户需要在 DEBOUNCE_CFG 寄存器中写入数据、而去抖逻辑可以根据 DEBOUNCE_CFG 值运行20MHz 或32.768kHz。

    Gibbs、如 Tushar 所述、去抖 逻辑对所有 GPIO 无效。

    您可以查看数据表、以了解有关哪些引脚可以支持此功能的更多详细信息。

    此致、

    Anil。

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

    您好!
    我们已使用示波器检测到电平变化、在没有电平抖动的情况下、仍然多次进入中断。 抖动真的有用吗?

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

    您好!
    您如何判断修改是否有效?

    我发现 MCU_GPIO0_20引脚在 EVB 板子测试期间未出现、

    然后您在 SysConfig 中将 GPIO 方向配置为输出。

    您如何得出修改有效的结论?

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

    您好!

    您如何得出修改有效的结论?

    无论引脚方向如何、均可生成中断。 您是否未测试上述示例?

    此外、EVM 中没有引脚、因此无法像我们对  MCU_GPIO0_15那样在输入模式下对其进行测试。

    此致、

    Tushar

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

    您好!

    您没有实际测试跳线?

    您提供的项目应该会进行修改、以便在已导出的 GPIO 上进行测试、对吗?

    实际上、我们已经对其进行了测试、但没有提高、

    但还有一个新问题:在活动级别期间、按下 cnt 每秒递增一次、它不再是边沿触发

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

    您好、Walter、

    所以您没有实际测试跳线?

    是的、您回答正确。 我还没有使用跳线电缆对其进行测试。

    您提供的项目应进行修改以在已导出的 GPIO 上进行测试、对吗?

    是的、您将需要修改它。 将 GPIO 的方向从输出更改为输入、并从程序中删除使引脚为高电平或低电平的行。

    在活动级别期间、按 cnt 每秒递增一次、不再是边沿触发信号

    您能否说明如何确认中断不是在边缘而是在级别上生成?

    请参阅下面的屏幕截图。

    此致、

    Tushar

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

    感谢您的答复、

    我似乎不明白控制 GPIO 输出电平是什么意思。

    我将在测试后根据您的提示与您联系。

    谢谢你

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

    您好、Walter、

    期待您的回复。

    此致、

    Tushar

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

    尊敬的 Tushar:

    我将工程中的 MCU_GPIO0_20更改为 MCU_GPIO0_17、并使用 EVM 板进行测试。

    日志如下所示、仍然没有改善、并且出现双边边缘触发。

    此外、我不知道您是否注意到该项目配置为触发下降沿。

    当下降沿中断被触发时、不会多次触发、但仅在上升沿中断被错误触发时触发

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

    您好、Walter、

    您可以重新连接图像吗?

    这对我来说是不可见的。

    此致、

    Tushar

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

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

    您好、Walter、

    Unknown 说:
    但仅当错误地触发了上升沿中断

    您能说明一下、如何确认上述内容吗?

    我可以看到上面的日志、只是表示按键已按下 n 次。

    此致、

    Tushar

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

    尊敬的 Tushar:

    我正在观察触摸操作和日志显示、以确定当跳线接地时、按下 cnt 只会添加1。

    如果未接地、则印刷机 cnt 一次会增加很多。

    您可以查看键 cnt 的对数、它从+1到+n

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

    尊敬的 Tushar:

    你有什么好消息?

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

    嗨、Gibbs、

    您能告诉我们、您是如何确认中断在 GPIO 的上升沿发生的?

    请与我们分享您捕获的 CRO 波形。

    此致、

    Tushar

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

    您好、Walter、

    [报价 userid="630935" url="~/support/processors-group/processors/f/processors-forum/1465883/sk-am62-lp-how-to-configure-the-m4-gpio-interrupt-trigger-type-to-falling-edge/5666743 #5666743"]

    如果未接地、则印刷机 cnt 一次会增加很多。

    您可以查看键 cnt 的对数、它从+1到+n

    [报价]

    这是因为在断开跳线电缆的过程中、信号会从高电平波动到低电平。 信号有可能已把+n 次拉至低电平(下降沿)、并且同样也会产生中断。

    如何确认中断是由上升沿引起的?

    此致、

    Tushar

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

    尊敬的 Tushar:

    MCU_GPIO0_17具有上拉电阻、我们的测试步骤如下所示:

    跳线指向地是下降沿变化、因此按下 cnt 将从0变为1。

    2.保持跳线接地,你可以看到按下 cnt 仍然保持1不变。

    3.断开接地跳线,相应的按压计数器从1更改为83。

    也许您可以使用 EVM 板对其进行测试。

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

    您好、Walter、  

    [报价 userid="16414" url="~/support/processors-group/processors/f/processors-forum/1465883/sk-am62-lp-how-to-configure-the-m4-gpio-interrupt-trigger-type-to-falling-edge/5669359 #5669359"]这是由于在断开跳线电缆的过程中信号从高到低的波动所导致的。 信号可能已将+n 次变为低值(下降沿)并且会针对相同的值生成中断。[/QUOT]

    对于3。 请参阅上述陈述。

    2. 保持跳线接地、您可以看到按下 cnt 仍为1。

    这是因为信号没有变化。

    此致、

    Tushar

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

    您好、Walter、  

    跳线断开电压从低到高、因为该跳线已接地。

    此外、我们还使用示波器来测试电平变化、电压没有多次变化

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

    你好、 Walter、

    3.断开接地跳线,相应的按压计数器从1更改为83。

    [报价]

    我们怀疑当您从 LOW (GND)断开跳线时、 信号可能会被切换多次。

    好的、我们想查看波形。 您能否在理想情况下分享波形(跳线未连接)并将跳线接地并断开跳线。

    我们需要确认有任何噪声信号正在创建更多的中断。

    此外、您是否有像可编程函数发生器那样进行任何设置、以便向 GPIO 引脚提供特定的计数脉冲并获取计数器值?

    如果您没有上述工具、请分享波形。

    此致、

    Anil。

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

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

    您好、Walter、

    请 在从 while 循环中删除 ClockP_sleep()函数调用并更新结果后重试一次。

    此致、

    Tushar

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

    尊敬的 Tushar:

    感谢提示、它现在不会多次起火、

    但它仍将在上升沿触发中断。

    我想知道为什么当你关闭 ClockP_sleep ()函数时,它不会多次触发?

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

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

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

    您好、Walter、

    但它仍将在上升沿触发中断

    这只是假设、或者您已经进行了验证。

    请注意、示例中显示的方法并不理想。 它仅用于测试中断是否出现。

    请为所使用的 GPIO 引脚启用内部上拉。

    如果您仍担心触发的中断数量、请使用函数发生器向 GPIO 提供清晰的波形。 不建议手动测试 GPIO 中断。

    此致、

    Tushar

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

    您好、Tushar

    我已经发送邮件给您一些评论和状态更新。

    您可以查看一下吗?

    非常感谢

    Gibbs

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

    嗨、Gibbs、

    我没有收到您的邮件。 您能检查您发送的电子邮件是否正确吗?

    此致、

    Tushar

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

    您好、Tushar

    在我们向 EVB 板添加一个100nF 电容器后、可以正常触发它。

    尽管如此,我想知道为什么当 ClockP_SLEEP()函数被删除时不会发生多重触发。

    我们的项目使用 FreeRTOS 和 vtaskdelay 进行任务切换、

    这似乎仍会导致对中断回调进行多次调用

    此致、

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

    您好、Walter、

    您看到中断多次被触发、因为您使用了手动方法连接和移除跳线电缆。

    该方法仅用于测试中断是否发生。

    从上面共享的波形可以看出、GPIO 的上升时间为高电平。 该信号可能会被多次读取为低电平(即下降沿)、因此会触发多次中断。

    我们的项目使用 FreeRTOS 和 vtaskdelay 进行任务切换、

    这似乎仍会导致对中断回调进行多次调用

    [报价]

    您能否尝试使用函数发生器而不是手动使用它?

    此致、

    Tushar

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

    您好、Tushar

    我的同事目前正在使用信号发生器进行相关测试、

    包括修改上拉电阻器的大小和调整上拉电压等。

    根据电流测试结果、显著降低上拉电阻值并将上拉电压设置为3.3V

    降低上升沿触发的可能性。

    在这些情况下似乎不再发生多个触发事件。

    此致

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

    您好、Walter、

    在这些情况下似乎不再发生多个触发事件。

    感谢您的确认。

    我的同事目前正在使用信号发生器进行相关测试、

    该问题不太可能发生、请在测试完成后告知我们。

    此致、

    Tushar