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.

[参考译文] AM623:在输出模式下未更新 GPIO 状态

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1426818/am623-gpio-status-not-updating-in-output-mode

器件型号:AM623
主题中讨论的其他器件:SysConfig

工具与软件:

您好!

我使用 GPIO 引脚时遇到以下行为问题:

  • 该引脚配置为 PIN_INPUT (在引脚多路复用中)  写入和状态(读取)操作均按预期工作。
  • 但是、当引脚配置为时 PIN_OUTPUT (在引脚多路复用中) 、当写入操作正常且引脚被驱动为高电平/低电平时、状态(读取)不会正确更新。 即使将引脚设置为高电平、状态也显示为低电平。

用于 GPIO 的库:libgpiod

  • 电气特性 gpioset gpiochip0 42=1、连接到 GPIO 引脚42的 LED 会在我们的定制板中亮起、表示该引脚已成功设置为高电平。
  • 但是、当我尝试使用读取同一引脚的状态时gpioget gpiochip0 42、即使引脚设置为高电平、它也会返回0 (低电平)而不是1 (高电平)。(当引脚配置为时、会发生问题 PIN_OUTPUT)

我已确保 pinmux 配置正确、但问题仍然存在。

您可以帮助调查状态为何未反映输出状态吗?

此致、Vikash

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

    尊敬的 Vikash:

    感谢您的提问。

    您能否说明您在使用哪种 SDK?

    使用的 SDK 版本是什么?

    此致、

    Tushar

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

    尊敬的 Tushar:

    SDK:tisdk (Yocto)- 09.02.01.09
    此致、Vikash

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

    尊敬的 Tushar:

    是否有任何更新?

    此致、Vikash

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

    尊敬的 Murali:

    我将把您的查询发送给我的一位对 Linux 开发更熟悉的团队成员、以供进一步评论。 请在一两天内收到回复。

    此致、

    Tushar

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

    尊敬的 Vikash:

    gpioget 和 gpioset 将 GPIO 的方向分别更改为输入和输出。 当 GPIO 改变方向时、先前的上下文丢失、因此运行"gpioset xyz=1"、然后"gpioget xyz"将始终导致意外的结果。

    此致、

    Anshu

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

    尊敬的 Anshu:

    1.  请您解释一下为什么我获得了 呈指数衰减 设置时的结果 PIN_INPUT 是否显示了特定的功能?
    2.  依据我的理解引脚、也就是 输出 在硬件设计中、应按所示配置 PIN_OUTPUT  器件树文件中、但确实如此 未提供预期值 我们会在尝试读取状态时读取它。 您能否确认确切原因?
    3. 它还被认为是一种良好的配置做法 PIN_INPUT 在中 引脚多路复用 用于 GPIO 引脚的 DTS、或者是否应仅在特定条件下使用?

    此致、Vikash

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

    尊敬的 Vikash:

    您能否说明我为什么要获得 呈指数衰减 设置时的结果 PIN_INPUT GPIO 引脚的状态[?/quote]

    当您说预期状态时、您是使用万用表测量还是读取软件输出? 当 GPIO 尚未设置某个值时、它将处于未定义状态(~0.5V)、 但软件会给出不同的读数。

    根据我的理解引脚、即 输出 在硬件设计中、应按所示配置 PIN_OUTPUT  器件树文件中、但确实如此 未提供预期值 我们会在尝试读取状态时读取它。 您能否确认确切原因?

    在软件将输出状态定义为高电平或低电平之前、状态将是未知的。 无论器件树中的 GPIO 是输入还是输出、这都是独立的。

    此外、是否认为进行配置是一种良好的做法 PIN_INPUT 在中 引脚多路复用 用于 GPIO 引脚的 DTS、或者是否应仅在特定条件下使用?

    当 GPIO 在器件树中定义为输入时、它能够是输入或输出。 当 GPIO 在器件树中定义为输出时、只能是输出。 如果您确信 GPIO 始终是输出、请将器件树中的 GPIO 定义为输出。 否则、保持为输入。

    谢谢!
    Anshu

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

    尊敬的 Anshu:

    感谢您对我所面临的 GPIO 引脚配置问题的答复。 不过、为了更好地了解情况、我想进一步澄清几点:

    1. 预期状态测量 :当您提到 GPIO 的未定义状态时,我正在使用软件输出(通过gpiogetgpioset)和万用表测量该状态。 您能否详细说明软件读数与万用表测量值之间的差异?

    2. 输出配置 :您提到状态将保持未知,直到软件定义它。 您能否说明将引脚配置为PIN_OUTPUT器件树中的引脚如何影响此行为? 如果该引脚在硬件设计中用作输出、那么当读取为输出时、为什么它不反映正确的状态?

    3. 引脚配置的最佳实践 :我欣赏您对引脚是否配置为PIN_INPUTPIN_OUTPUT的见解。 您能否提供更多有关将 GPIO 引脚定义为输入可能更可取的情况的背景信息、即使在硬件设计规定它应该是一个输出时也是如此?

    4. 了解配置需求 :最后,您能否帮助我理解为什么需要将引脚配置为设备树中的输入,以实现读/写操作的预期结果,尽管它在硬件设计中被指定为输出?

    非常感谢您对这些要点的澄清。

    此致、Vikash