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.

[参考译文] AM64x Sitara SysConfig gPinMuxMainDomainCfg 和 GPIO 组

Guru**** 2538960 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/1051201/am64x-sitara-sysconfig-gpinmuxmaindomaincfg-and-gpio-banks

Thread 中讨论的其他器件:SysConfig

早上好、
我还有一个关于 GPIO 的问题。

我的理解:
(三
我们板上的引脚当前使用 SysConfig 进行配置、SysConfig 会生成一个包含引脚名称的 gPinMuxMainDomainCfg 类型映射
(即枚举 Pinmux_MainOffsets 中 TI_SDK/MCU_PLUS_SDK_am64x/SOURCE /驱动程序/ pinmux/am64x_am243x/pinmux.h 中定义的引脚偏移)
作为密钥和设置(PIN_MODE、拉动方向、输入/输出)作为数据。

在初始化期间调用函数 Pinmux_Init、该函数使用域 main 调用一次自身 Pinmux_Config、使用域 MCU 调用一次。
然后在 Pinmux_Config内部 指定一个域(主域或 MCU)。 然后根据域计算基地址。

(三

我无法理解的内容
(三
现在、似乎可以通过某个域相关基址以及枚举 Pinmux_MainOffsets 中给出的引脚偏移来访问每个单个引脚。
这包括 GPIO 引脚。
但同时、通过计算组寄存器索引和引脚掩码、GPIO 引脚只能作为位位置进行访问(whcih 是合理的、因为它们只有数字值)
来自 GPIO 模块基址、该基址指向 TI_SDK/MCU_PLUS_SDK_am64x/SOURCE /驱动程序/GPIO/V0/cslr_gpio.h 中定义的 CSL_GpioRegs 结构

这里的问题是、我看不到 SysConfig 方法如何使用每个引脚的寄存器、而 cslr_gpio.h 方法如何使用仅用于组和引脚的寄存器作为位值组合在一起。

(三
感谢您抽出宝贵的时间、为您解决问题。


此致

Philip。

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

    Ah、 enum Pinmux_MainOffsets 中的引脚偏移可能是 gpio.h 中用于计算组和引脚掩码的引脚编号。
    是这样吗?
    我想我现在会像这样使用它、希望它能正常工作。

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

    您好、Philip、

    示例.syscfg 的作用是将实际 GPIO 引脚映射到特定名称、例如 GPIO1_43映射到 GPIO_INPUT_INTERRUPT_AM64x-EVM_r5fs0-1_norto 中的 GPIO_PUSH 按钮、为  pinmux 生成 ti_pinmux_config.c、并为 GPIO1_43生成以下定义的 ti_drivers_config.h:

    /* GPIO PIN 宏*/
    #define GPIO_PUSH_button_BASE_ADDR (CSL_GPIO1_base)
    #define GPIO_PUSH_button_PIN (43)
    #define GPIO_PUSH_button_DIR (GPIO_DIRECTION _INPUT)
    #define GPIO_PUSH_button_TRIG_TYPE (GPIO_TRIG_TY_RISE_EDGE)
    #define CONFIG_GPIO_NUM_Instances (1U)

    它们稍后将在  GPIO_INPUT_INTERRUPT.c 中的 GPIO_INPUT_INTERRUPT_MAIN ()中用于初始化和配置。

    此致、

    Ming