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.

[参考译文] AM6548:无法设置 PRU GPIO 值

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1595582/am6548-not-able-to-set-pru-gpio-value

器件型号: AM6548

尊敬的 TI:  

我尝试将 PRG1_PRU0GPO5(焊盘编号 AF27)值设置为 1、但系统会自动将其设置为 0。 我们尝试删除 Pru 以太网驱动程序、也尝试删除其他与 PRU 相关的驱动程序、但 Linux 无法设置值 1。  

这里为什么 Linux 无法设置 PRU GPIO 的值可能会有什么问题。  

下面是 DTS 快照  

AM65X_IOPAD (0x00f4、PIN_OUTPUT、7)   /*(AF27) GPIO0_61

谢谢

 

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

    您好:

    为了进行澄清、您尝试使用 Linux 的 GPIO 信号、对吧? 不使用 PRU 内核向引脚写入值?

    您使用的是哪个版本的 Linux 内核?

    此致、

    Nick

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

    嗨、Nick、感谢您的连接。 是的、我们使用 Linux 的 GPIO 信号。 Linux 版本是 Linux-5.10.100、它是 8.2 SDK 的一部分。  

    此致、

    Sarfaraz

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

    您好、Sarfaraz、  

    请注意、  AM6548 数据表、产品信息和支持|德州仪器 TI.com 上显示的 AM65 设计支持有限。我建议 查看以下常见问题解答、了解如何正确设置引脚多路复用并建立参考节点(在“GPIO 已选择在 Linux 中使用、如何在 Linux 器件树 中启用 GPIO “下):【常见问题解答】PROCESSOR-SDK:使用 AM62 和 AM64 系列处理器在 Linux 中开始 GPIO — 处理器论坛-处理器 — TI E2E 支持论坛。   libgpiod 不适用于较旧的内核版本、因此请确保 使用 sysfs 来尝试设置 GPIO 值。 有关 SYSFS 的更多信息也可在常见问题解答中找到。

    此致、

    Shriya

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

    我们正在尝试通过 sys 接口。 GPIO 是一件简单的事情。 其他 GPIO 正常工作、唯一的问题是由 Linux 控制 PRU GPIO。  

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

    您好、Sarfaraz、

    由于其他 GPIO 按预期运行、因此器件树中的其他位置可能存在引脚多路复用冲突。 您能否检查 DTS 文件中的其他位置是否配置了相同的地址 (0x00f4)?

    此外、使用 devmem2 在运行时读回电路板上的相应 pinmux 寄存器并确认启动后实际应用的模式和方向会有所帮助。 这将有助于确定是否覆盖 pinmux。

    此致、
    Shriya

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

    您好 Shirya、  
     

    我们已验证并确认该地址 0x00f4器件树文件中的任何其他位置使用。 此外、我们还在 TI 评估板上观察到了相同的问题。 这表明该问题可能不是特定于我们的定制硬件、但可能与引脚多路复用配置或驱动程序行为有关。

    如果您建议进行任何其他检查、或者 TI 平台上此 pinmux 设置存在已知限制、请告知我们。



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

    嗨、Shankar、

    需要 注意的一点是、在 EVM 上、默认情况下未配置 0x00f4 处的 pinmux 寄存器。 在早期启动期间未显式设置该寄存器、 只是尝试在运行时设置引脚将无法按预期工作。 您能否 使用 devmem2 在运行时验证寄存器值? 请在任何 GPIO 交互之前读取一次寄存器值、然后在尝试设置后再次读取该值。 这将显示是否实际应用了预期的模式和方向。

    此致、

    Shriya

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

    您好 Shriya、

    我们成功实现了这一点 GPIO5. 0x00f4使用devmem2 我们定制板上的直接写入寄存器 ():

    devmem2 0x0011C0f4 w 0x08050007
    

    此外、我们还成功地在同一寄存器上设置了该值。

    感谢您的支持!

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

    嗨、Shankar、  

    很高兴听到、很高兴我们能提供帮助。  

    Shriya