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.

[参考译文] AM5728:GPIO 中断

Guru**** 2595770 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/588204/am5728-gpio-interrupts

器件型号:AM5728

尊敬的所有人:

我有关于 AM572x GPIO 控制器的问题。 通过阅读参考手册、我发现 GPIO 实例有两条可独立配置的中断线路。 但是、通过查看边缘触发寄存器、它不适用于这两个实例。 因此、我有点困惑、如果我们启用这两个行、则边沿触发器对这两个行都不是独立的。 如果没有包含两条中断线路的确切用例、 例如:如果我要为"上升沿"和"下降沿"分别配置 GPIO 1、是否可能? 提前感谢。

此致、

Hamza。

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

    可以为同一引脚上的上升沿和下降沿生成单独的 GPIO 中断。 例如、通过将寄存器 GPIO_RISINGDETECT 和 GPIO_FAULINGDETECT 中的第 k 位设置为1来配置输入 k 两个沿上的中断生成、并为一条或两条中断线路启用中断(GPIO_IRQSTATUS_SET_n)。 但是、您的 ISR 需要读取引脚电平以确定哪个边沿触发了中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Biser、

    我们非常感谢您的快速响应。 但我仍然有一些困惑、在启用中断(GPIO_IRQSTATUS_SET_n)时、我们如何区分为"上升沿"设置的中断和为"下降沿"设置的中断。 理想情况下、我们应该知道在 ISR 中、针对"上升沿"或"下降沿"或"低/高"电平等发生了特定矢量 ID

    此致、
    Hamza。

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

    •GPIO 通道的中断必须在 GPIO_IRQSTATUS_SET_0和/或 GPIO_IRQSTATUS_SET_1寄存器中启用。

    •必须在 GPIO_LEVELDETECT0、GPIO_LEVELDETECT1、GPIO_RISINGDETECT 和 GPIO_FAULINGDETECT 寄存器中选择输入 GPIO 上触发中断请求的预期事件。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Biser、

    我对您描述的工作流程没有任何困惑。 我想知道我们是否为特定 GPIO 线路同时启用 GPIO_IRQSTATUS_SET_0、GPIO_IRQSTATUS_SET_1中断。 我们要将"GPIO_IRQSTATUS_SET_0"配置为"上升沿"触发器、将"GPIO_IRQSTATUS_SET_1"配置为下降沿中断、我们如何实现这一点。 由于两条线共用"上升/下降"边沿触发器、但两个 IRQ 都有不同的矢量 ID。

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

    [引用 USER="Ameer Hamza"]我想知道我们是否为特定 GPIO 线路同时启用 GPIO_IRQSTATUS_SET_0、GPIO_IRQSTATUS_SET_1中断。[/quot]

    这将为同一事件生成两个中断。 这样做毫无意义。

    [引用 user="Ameer Hamza"]我们要将"GPIO_IRQSTATUS_SET_0"配置为"上升沿"触发器、并将"GPIO_IRQSTATUS_SET_1"配置为下降沿中断、我们如何实现这一点。[/QUERPILE]

    我在第一个帖子中解释过、这是无法实现的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    总之:如果要为两个边沿生成两个单独的中断、则需要在两个 GPIO 引脚上输入信号。 一个引脚配置为下降沿和中断0、另一个引脚配置为上升沿和中断1。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Biser、

    我的困惑正在变得很清楚。 最后一个问题,GPIO_IRQSTATUS_SET_1 (具有第二个中断线路)的具体用例是什么? 感谢所有支持。

    此致、
    Hamza。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这样、您就可以为 GPIO 模块中的一个或多个信号使用单独的中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我现在明白了。 因此、对于特定的 GPIO 引脚而言、它始终只启用一个中断。 这个特性会在模块内设置两个中断。 对吧?

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