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.

[参考译文] AM2634-Q1:GPIO 组和内核映射概念说明

Guru**** 2587345 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/1249139/am2634-q1-gpio-group-and-core-mapping-concept-clarificaiton

器件型号:AM2634-Q1
主题中讨论的其他器件:SysConfigash

大家好、

我对 GPIO 模块和组的映射有一些困惑。 根据 客户经理的参考、我的理解如下。  

  • 有144个 GPIO 端口引脚可用于 IO 处理。 每个都具有中断功能
  • 正如在 MCAL 端口配置中一样、这144个引脚分为9组(A-I)。 这些组别在 RM 中也被称为银行。
  • 有4个 GPIO 模块 GPIO0 - GPIO3
    • 每个模块都映射到相应的内核0 - Core3
  • 每个 GPIO 模块都具有与全部144个引脚相关的配置寄存器、按组分组

查询:

  • 是否可以使用144 (引脚)* 4 (GPIO 模块)= 576引脚配置?
  • 哪些引脚/组/组映射到哪个内核?
  • 与 GPIO 引脚相关的 INT 布线概念有2个
    • GPIO_XBAR_INTRTR0 (中断路由器)
    • INPUTXBAR (在 MCU Autosar 模块中查看配置)
      • 需要使用上述两种概念中的哪一种来处理特定端口引脚中的 GPI 输入中断。
  • 需要对组中断的使用进行一些说明、因为我们注意到、每个内核在与该内核相关的 VIM 中只能处理4个 GPIO 中断(142 - 145)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ashish:

    我会很快回复您、为您回答上述所有问题。

    此致、

    Shaunak

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

    尊敬的 Ashish:

    哪些引脚/组/组映射到哪个内核?

    有144个 GPIO 引脚、但根据其 PinMux 配置、每个引脚只有一个内核可以驱动。 因此、这144个 GPO 引脚是可以专门为每个内核配置的资源。 但所有 GPI 都可以在全部4个 GPIO 组中读取、即全部4个内核都可以读取。  

    请参阅 TRM 中4.10 GPIO 集成中的注释。

     

    Unknown 说:
    与 GPIO 引脚相关的 INT 路由有2个概念
    • GPIO_XBAR_INTRTR0 (中断路由器)
    • INPUTXBAR (在 MCU Autosar 模块中查看配置)
      • 需要使用上述两种概念中的哪一种来处理特定端口引脚中的 GPI 输入中断
    [/报价]

    与 GPI 相关的 INT 路由有2个概念。  

    1. 直接 GPIO_XBAR_INTRTR0输出。 有16个输出、每个 VIM 有4个输出。 每个输出都可以选择给定 GPIO_MUX_x 或 GPIO_BANK_INT 作为输入。
      1. 有关到 VIM 的中断连接、请参阅 TRM 中的10.3.2.3
    2. 间接通过 SOC_TIMESYNCXBAR1、有5个 GPIO_XBAR_INTRTR0输出可连接到 SOC_TIMESYNC1。 同样、SOC_TIMESYNCXBAR1有16个输出连接到 VIMx、每个 VIM 有4个输出。  
      1. 有关 SOC_TIMESYNCXBAR1与 VIM 的连接、请参阅表12-9。
    Unknown 说:
    我们注意到每个内核在与该内核相关的 VIM 中只能处理4个 GPIO 中断(142 - 145)、因此需要对组中断的使用进行一些说明。

    对于每个 GPIO 外设(每个内核1个)、144个 GPI 被划分为9组、每组包含16个引脚。 这些组可以基于16个 GPI 中的任何一个生成 INT。 同样、这些 INT 需要通过 GPIO_XBAR_INTRTR0路由至 VIM 或间接(如上所述)。

     更多信息、请参阅13.1.1.4.3 "TRM 中的 GPIO 中断和事件生成"。

    谢谢。

    马德哈瓦  

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

    您好,Madhava,

    非常感谢您的快速响应。 我将在2天内进行详细检查、因为我正在进行明天的交货测试。 如果我需要进一步澄清、 请看一下您的回答、您认为我们能在2天内给您打一个简短的电话吗?

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

    尊敬的 Ashish:

    请将您希望在电话中讨论的问题发布在此论坛上。 我们将尝试重新处理这些问题。

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

    您好,Madhava,

    我目前使用的是 SDK 示例工程"gpio_input_interrupt_am263x-lp_r5fss0-0_nortos_ti-arm-clang"。 这是我根据代码流程注意到的。  
      

    只是为了让您知道我正在尝试使它在 Autosar MCAL 环境中正常工作。 我注意到 PWM_Init 负责 BINTEN、PIN_DIR 和 PIN_TRIG 寄存器。 因此、我已经为 Vim intr 142配置了 CAT2 ISR、

    但我的 ISR 未命中。 我假设缺少的链路是 INT 路由器映射/配置。 但我在前面提到的 SDK 示例中看不到该映射。  

    我知道你的想法,那我是想念你的。

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

    Ashish、  

    您能否为同一示例检查 SysConfig 生成的代码?  在同一示例中、也发生了来自该 GPIO 组的 GPIO_XBAR_INTRTR 配置。 此外、此示例已在最新的 SDK (8.6)中进行了更新。  

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

    尊敬的 Madhava:
    我已经检查了生成的代码并配置了 INTRTR 模块;我现在可以看到 GPIO_XBAR_INTR_MUXCNTL 寄存器也已按照示例更新。  

    SDK 示例工作正常。 但在 Autosar 环境中;按下 SW4按钮的 ISR 不会被触发;如果在清除所有寄存器后进行刷写。 奇怪的是、我们还看到、如果我们刷写 SDK 示例、然后刷写 Autosar SW (不清除寄存器设置)、则也会触发 Autosar SW ISR。

    我已经交叉检查了 GPIO0_BINTEN 、GPIO0_DIR 、GPIO0_SET_RIS_TRIG 、GPIO0_CLR_RIS_TRIG、VIM_INTR_EN_SET_4寄存器; 它们看起来几乎与 SDK 示例中的值相同。 我有点不清楚我们是否需要考虑 VIM_PRIIRQ、VIM_IRQVEC 寄存器、因为我看到了一些差异、但无法解释预期的结果。  

    是否有任何其他我需要监控的寄存器。 如果我们能尝试进行一次简短的调试调用、我们将不胜感激。

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

    您好,Madhava,

    您身边的任何更新/建议。 能否在短时间内进行调试会话? 我无法继续讨论该主题。  

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

    尊敬的 Ashish:  

    此问题似乎出在 ISR 注册中。 但是、我不熟悉 AutoSAR 环境中的 ISR 注册过程。 我已请这一主题的专家发表评论/提供更好的帮助。  

    谢谢。

    马德哈瓦

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

    尊敬的 Madhava:

    我 为 Autosar 团队的同一主题创建了单独的 TT
    https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1247776/am2634-q1-autosar-gpio-interrupt-config-feature-support?tisearch=e2e-sitesearch&keymatch=empel#

    由于未在对应的一侧实现该功能、因此我需要集成 SDK 中的内容、以便在 Autosar 环境中获得功能支持。 现在还不清楚谁能够回顾或参加一个快速会议。  

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

    尊敬的 Ashish:

    您能否澄清以下问题?

    1) 1)在 AUTOSAR 环境中、您如何进行 GPIO 配置? 您是否使用端口和数字音频模块?

    2) 2)如果不在上述情况下、则在 AUTOSAR 中只执行中断注册、您无法获得中断?

    谢谢。此致、

    Sunil Kumar M S

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

    1) 1)在 AUTOSAR 环境中、您如何进行 GPIO 配置? 您是否使用端口和数字音频模块?

    Ash : Hi Sunil. 是的、我们使用端口和 DIO MCAL 模块来配置该 GPIO 引脚。 我看到、在 Port_init 被称为组中断后、相应寄存器中与 GPIO 引脚相关的 PinDirection 位被更新。 不过、即使完成配置、上升沿/下降沿触发寄存器也未更新。 因此、我必须使用 SDK API 为待测的 GPIO 引脚设置该 reg。

    2) 2)如果不在上述情况下、则在 AUTOSAR 中只执行中断注册、您无法获得中断?

    对于 INT 配置、有2个步骤:

    *设置 INTRTR 设置以将 INT 路由 到 VIM ->这是使用 SDK 中的 API 完成的、因为配置选项在 MCU 中不可用于此目的。

    *将 OSIR 配置为 GPIO 中断(142)作为 CAT2 ISR

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

    需要从端口配置初始化 GPIO123的 PINMUX 寄存器才能使 GPIO 正常工作。  为了在多路复用器寄存器中获得0x507、我们必须更新 MCAL 端口模块中的2个参数、如下面的屏幕截图所示:

     但此配置对其他一些引脚(GPIO 26、用于 LED 闪烁)不起作用。

    需要进一步检查

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

    尊敬的 Ashish:

    当我们通过调用调试此线程时、我会将状态更新为等待客户。

    谢谢。此致、

    Sunil Kumar M S

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

    该配置似乎 也适用于 GPIO26。 从而解决问题。