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.

[参考译文] 如何查找要从用户空间启用的 GPIO 编号

Guru**** 2012440 points
Other Parts Discussed in Thread: AM4378, SN75HVD12
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/568492/how-to-find-gpio-number-to-enable-from-user-space

器件型号:PROCESSOR-SDK-AM437X
主题中讨论的其他器件:AM4378SN75HVD12

工具/软件:Linux

朋友们、您好!

我正在基于 AM4378开发定制板。 我使用的是 SDK ti-processor-sdk-linux-AM437X-EVM-02.00.00.00。 UART5用于半双工模式下的 RS485通信 、而 D24引脚 用于 RTS 和 DTS 引脚。  

 我正在尝试使用以下命令从用户空间启用/禁用 GPIO0-19 (D24)

 

Echo 19 >/sys/class/gpio/export

echo "out">/sys/class/gpio/gpio19/direction

echo "in">/sys/class/gpio/gpio19/direction

Echo 1 >/sys/class/gpio/gpio19/value

echo 0 >/sys/class/gpio/gpio19/value.

我可以看到 GPIO19切换(从终端)、但即使我设置为高电平、引脚 D24引脚的电压电平仍然很低。  

我已经使用公式( (32*M+N) )来计算 GPIO0-19的 GPIO 数量、因此我尝试 使用 echo 19 >/sys/class/gpio/export.  该公式是否正确? 如果是、为什么我无法看到 D24引脚上的电压变化。? 我还更改了 DTS 文件  

GPIO0_PINS_DEFAULT:GPIO0_PINS_DEFAULT{

                   pinctrl-single、pins =<

                             0x270 (PIN_OUTPUT 上拉| MUX_MODE7)/*(D24) xdma_event_in0.GPIO0[19]*/

                   >;

          };

          GPIO0_PINS_SLEEP:GPIO0_PINS_SLEEP{

        pinctrl-single、pins =<

            0x270 (PIN_OUTPUT 上拉| MUX_MODE7)/*(D24) xdma_event_in0.GPIO0[19]*/

        >;

    };

 

.

…………

…………

GPIO0{&gpio0}

          状态="正常";

          pinctrl-names ="default"、"sleep";

          pinctrl-0 =<&GPIO0_PINS_DEFAULT>;

          pincntrl-1 =<&GPIO0_PINS_SLEEP>;

          GPIO =<&GPIO0 19 GPIO_ACTIVE_HIGH_>;

 

};

 

提前感谢。

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

    当引脚(例如 D24)配置为 MUX_MODE7 (UART5)时、尝试将其用作 GPIO 是不正确的。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Tsvetolin Shulev,
    非常感谢您的快速回复。
    D24引脚仅用作 GPIO、用于向转换器 SN75HVD12 (RS485)发送1或0、其中 RTS 和 CTS 引脚连接在一起以在半双工模式下运行。 如果我们从 D24发送1,则它充当发送器,0充当接收器。 那么、我在这里需要的是如何为已配置为 GPIO 的 D24设置1或0。 在 mode7中、它的名称是 GPIO0-19。 我想知道其等效的 GPIO 编号、以便可以使用来自 userspace 的命令。
    Echo XX >/sys/class/gpio/export
    echo "out">/sys/class/gpio/gpioXX/direction
    echo "in">/sys/class/gpio/gpioXX/direction
    Echo 1 >/sys/class/gpio/gpioXX/value
    echo 0 >/sys/class/gpio/gpioXX/value.


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

    如果您将引脚设置为输入、则不会看到电源电压电平需要转换。
    首先、将 GPIO 引脚设置为输出、当您设置值0/1时、将对引脚进行示波、您应该会看到它。

    Echo 19 >/sys/class/gpio/export
    echo "out">/sys/class/gpio/19/direction
    Echo 1 >/sys/class/gpio/19/value
    示波器值之后
    echo 0 >/sys/class/gpio/19value
    示波器值之后

    谢谢、
    Prabhakar LAD
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prabhakar、您好!
    感谢你能抽出时间。 我想知道 AM437x 板 GPIO0_19引脚的 GPIO 编号。 我已经看到了为 AM437x 计算 GPIO 数(GPIOM_n = 32*m+n)的公式。 这是我对 GPIO0_19使用的"19"。 我在输出中设置它并发送1。但我看不到电路板上的电压变化。 该公式是否正确? 或者、我是否需要更改 AM437X-gp-evm.dts 文件中 pinmux 和设备树文件的任何内容??
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是的、如果需要、GPIO 编号是正确的 GP0[19]。 即使通过公式也可以得到(gpiom_n = 32*m+n)((gpio0_19 = 32*0+19)= 19)。 是的、您需要配置引脚多路复用器以将引脚用作 GPIO。

    谢谢、
    Prabhakar LAD