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.

[参考译文] LP-AM263P:配置 4 个以上的 GPIO 中断

Guru**** 2554460 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1523003/lp-am263p-configuring-more-than-4-gpio-interrupts

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

工具/软件:

您好:

我对创建 GPIO 输入中断有几个问题。

  1. 我尝试针对 12 个 GPIO 触发输入中断。 其中 2 个是多路复用器中断、而其他 10 个则分布在 6 个组之间。 因此、我需要 8 个中断条件实例。 多个实例是否可以使用相同的中断条件、因为我尝试这样做时遇到了错误。
  2. 如果没有、一个内核是否只能处理四个中断条件(例如,对于内核 0、它将是 R5FSS0_CORE0_INTR_INTRXBAR_OUT_14 到 R5FSS0_CORE0_INTR_INTRXBAR_OUT_17、它们对应于 XBar 实例 GPIO_INT_XBAR_VIM_MODULE0_0 到 GPIO_LE0_VIM_DU3)? 或者是否有其他中断条件可供选择? 如果我有其他中断条件可供选择、它们对应的 xbar 实例是什么?
  3. XBar 实例的其他类型有哪些(例如 GPIO_INT_XBAR_ICSS_XBAR_0)

谢谢!

   Saanvi

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

    尊敬的 Saanvi:

    多个实例可以使用相同的中断条件、因为我尝试这样做时遇到了错误。

    能否分享您面临的具体错误。

    此致、
    Shaunak

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

    如果两个单独的 XBAR 设置为同一个实例、我得到了以下错误(在本例中,我尝试向它们提供 GPIO_INT_XBAR_VIM_MODULE0_1 的实例)。

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

    尊敬的  Saanvi:

    请参阅以下常见问题解答、更好地了解 GPIO 和 XBAR:  

    1.https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1184311/faq-mcu-plus-sdk-am263x-configuring-gpio-interrupts

    2.如果您需要一个展示上述常见问题解答中所述配置的示例,请参考此 e2e 中随附的工程: https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1339500/am2634-gpio-interrupt-configurations

    此致、
    Shaunak

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

    感谢您提供的信息! 链接表示只有 4 个 XBar 可以路由到 VIM_0。  但是、我必须创建 6 组中断+ 2 个单独的中断。 因此、我想知道是否可以执行 4 个以上的中断。 即使在第二个链路中、它们也最终完成了 1 组中断+ 3 个单独的中断。 您是否有任何示例说明如何处理 4 个以上的问题? 下面是我需要帮助时的中断细分。

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

    尊敬的 Saanvi:

    我已经邀请了另一位专家在这里提供帮助、让我们等待听到他们的意见

    此致、
    Shaunak

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

    嗨、Shaunak、

    为了澄清这个问题、Saanvi 和我总的来说只是尝试找出如何针对她前面列出的所有中断正确配置 SysConfig。

    1. 我们正在将此应用加载到内核 0
    2. 我们最多使用 6 个组、因此我们认为我们只能使用 GPIO_INT_XBAR_VIM_MODULE0_0 到 GPIO_INT_XBAR_VIM_MODULE0_3 。 我们的印象是我们不能将 GPIO_INT_XBAR_VIM_Module1_x 用于 GPIO_INT_XBAR_VIM_Module3_x  、因为我们没有将该程序加载到内核 1 至 3。 如果理解正确、请更正我们  错误。
    3. 由于我们只能为 XBAR 实例选择 4 个 VIM 实例、因此我们想知道可以选择哪些其他 XBAR 实例。 什么是 GPIO_INT_XBAR_ICSS_XBAR、GPIO_INT_XBAR_DMA_TRIG_XBAR 和 GPIO_INT_XBAR_SOC_TIMESYNC_XBAR ?
    4. 另一种方法是将多个存储体放在 1 个 VIM 实例上。 这是可能的吗? SysConfig 仅使我们能够为每个 xbar 实例选择 1 个 xbar 输出。

    此致、

    David Martinez

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

    您好、David:

    我们的器件 GPIO 专家是在医疗假期间的 OOO、 根据我的理解、由于我们只有 4 个 VIM 模块 (0-3)、因此我们将无法处理和路由 6 个中断。 我将尝试加入更多 XBAR 和中断专家  

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

    您好、David

    我们最多使用 6 个存储体、因此我们认为我们只能将 GPIO_INT_VIM_MODULE0_0 更改为 GPIO_INT_XBAR_VIM_MODULE0_3 。 我们的印象是我们不能将 GPIO_INT_XBAR_VIM_Module1_x 用于 GPIO_INT_XBAR_VIM_Module3_x  、因为我们没有将该程序加载到内核 1 至 3。 如果理解正确、请更正我们  错误。 [/报价]

    从 TRM 中可以看出、您的理解是正确的。

    另一种方法是将多家银行放在 1 个 VIM 实例上。 这是可能的吗? SysConfig 仅使我们能够为每个 xbar 实例选择 1 个 xbar 输出。

    否、从 TRM 中再次可以看出、每个输出只能来自单个输入。 无法将第二个 GPIO 源分配给已使用的 VIM、因为它会覆盖第一个。

    由于我们只有 4 个 VIM 实例可以为 XBAR 实例选择、因此我们想知道可以选择哪些其他 XBAR 实例。 什么是 GPIO_INT_XBAR_ICSS_XBAR、GPIO_INT_XBAR_DMA_TRIG_XBAR 和 GPIO_INT_XBAR_SOC_TIMESYNC_XBAR ?
    1. GPIO_INT_XBAR_ICSS_XBAR:这会将 GPIO 中断路由到 PRU-ICSS(可编程实时单元工业通信子系统)。
    2. GPIO_INT_XBAR_DMA_TRIG_XBAR:这会路由 GPIO 中断以触发 EDMA(增强型直接存储器存取) 通道。 这对于基于硬件事件启动存储器传输而无需 CPU 干预非常有用。  
    3. GPIO_INT_XBAR_SOC_TIMESYNC_XBAR:这适用于 SoC 级时间同步 模块。 它通常用于需要为 GPIO 事件提供精确时间戳的应用

    从 TRM 中、我们还可以看到、处理大量 GPIO 中断的预期架构是将这些中断卸载到可编程实时单元 (PRU)

    GPIO 中断路由器(主交叉开关)的设计为 PRU-ICSS 分配的中断输出数量远远大于主 R5F 内核。

    • R5FSS0-CORE0 VIM 输入: 在我们建立的过程中  GPIO XBAR 的输出 14、15、16 和 17 被路由到内核 0 的 VIM。  总共  4 个直接输入
    • PRU-ICSS INTC 输入: 如  中断 TRM(“GPIO 中断路由器输出目标摘要“)的表 15-156 所示、输出  30 至 61 路由到 PRU-ICSS 中断控制器。    PRU 子系统总共有 32 个专用输入。

    这种方法应如下所示(我们将在 PRU 专家中循环以确认这一点):

    •  直接路由 4 个关键中断
    • 使用将其余中断路由到 PRU GPIO_INT_XBAR_ICSS_XBAR
    • 对 PRU 进行编程、以便从 GPIO 获取事件、然后将新事件触发回 R5F VIM、PRU 有 16 个专用事件输出用于此目的  
    •  为 PRU 创建一个 R5F ISR

    要开始进行相关操作、请查看 SDK 中提供的 PRU-IO 示例。

    此致、
    阿克什特

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

    您好、Akshit、

    感谢您的答复。 我还有几个关于如何实现这一点的问题。

    1.  

    在使用 VIM 模块创建组中断的代码中、是否有方法可以确定哪些引脚导致了组中断?

    2.在上面的同一屏幕截图中、为什么 gGpioBaseAddr 不改变、具体取决于我们尝试为哪个组创建中断? 如何选择正确的 gGpioBaseAddr?

    3.

    您在上一条消息中提到的 PRU-IO 示例。 我应该参考的代码是什么? 如果是、我仍然无法真正了解如何将新事件触发回 R5F VIM? 如何为 PRU 创建 R5F ISR、如何初始化要为 PRU 创建中断的引脚?

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

    大家好、我想关注这个主题!

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

    尊敬的 Saanvi:

    我们的专家是 OOO、请期待下周中旬收到回复。