工具/软件:
你好。
我希望此消息能帮您找到答案。 我目前正在使用 AM62x 入门套件 EVM、遇到 GPIO 控制问题、希望您能提供帮助。
问题描述:
当特定的 GPIO 引脚连接到用户扩展连接器时、在 AM62x 入门套件 EVM 上遇到 GPIO 控制问题。 这些引脚无法使用标准 GPIO 工具进行控制。
问题详细信息:
以下 GPIO 引脚是无法控制的、卡在大约 0.7V:
- GPIO0_32(引脚 32)-无法控制、显示 0.7V
- GPIO0_33(引脚 33)–无法控制、显示 0.7V
- GPIO0_36(引脚 36)-部分可控、显示 0.7V
- GPIO0_42(引脚 42)–无法控制、显示 0.7V
工作的 GPIO 引脚用于比较:
- GPIO0_38、GPIO0_39、GPIO0_40、GPIO0_41 — 全部可控且功能正常
测试环境:
- 板:AM62x 入门套件 EVM(修订版 E3)
- 未将外部设备连接至用户扩展连接器
- 所有 GPIO 引脚均配置为 GPIO 模式 (pinctrl 显示 00010007)
- 使用万用表在用户扩展连接器引脚上进行测试
pinctrl 调试输出:
root@am62xx-EVM:~# cat /sys/kernel/debug/pinctrl/f4000.pinctrl-pinctrl-single/pins | grep -E“引脚 14|引脚 32|引脚 33|引脚 36|引脚 38|引脚 39|引脚 40|引脚 41|引脚 42“
引脚 14 (PIN14) 14:600000.GPIO f4038 00010007 pinctrl-single
引脚 32 (PIN32) 0:? f4080 00010007 pinctrl-single
引脚 33 (PIN33) 32:600000.GPIO f4084 00010007 pinctrl-single
引脚 36 (PIN36) 35:600000.GPIO f4090 00010007 pinctrl-single
引脚 38 (PIN38) 37:600000.GPIO f4098 00010007 pinctrl-single
引脚 39 (PIN39) 38:600000.gpio f409c 00010007 pinctrl-single
引脚 40 (PIN40) 39:600000.gpio f40a0 00010007 pinctrl-single
引脚 41 (PIN41) 40:600000.GPIO f40a4 00010007 pinctrl-single
引脚 42 (PIN42) 41:600000.gpio f40a8 00010007 pinctrl-single
使用的测试命令:
# Check GPIO status
gpioinfo | grep -E "gpiochip0.*32|gpiochip0.*33|gpiochip0.*36|gpiochip0.*42"
# Attempt to control GPIOs
gpioset gpiochip0 32=1 # No effect, voltage remains ~0.7V
gpioset gpiochip0 33=1 # No effect, voltage remains ~0.7V
gpioset gpiochip0 42=1 # No effect, voltage remains ~0.7V
# Working examples
gpioset gpiochip0 38=1 # Works correctly, outputs 3.3V
gpioset gpiochip0 39=1 # Works correctly, outputs 3.3V
器件树配置:
这些引脚的当前 DTS 引脚多路复用配置:
user_gpio_pins: user-gpio-pins {
pinctrl-single,pins = <
// GPIO 모드로 설정 (마지막 파라미터가 7이면 GPIO 모드)
AM62X_IOPAD(0x0038, PIN_OUTPUT, 7) /* GPIO0_14 */
AM62X_IOPAD(0x0080, PIN_OUTPUT, 7) /* GPIO0_32 */
AM62X_IOPAD(0x0084, PIN_OUTPUT, 7) /* GPIO0_33 */
AM62X_IOPAD(0x0090, PIN_OUTPUT, 7) /* GPIO0_36 */
AM62X_IOPAD(0x0098, PIN_OUTPUT, 7) /* GPIO0_38 */
AM62X_IOPAD(0x009C, PIN_OUTPUT, 7) /* GPIO0_39 */
AM62X_IOPAD(0x00A0, PIN_OUTPUT, 7) /* GPIO0_40 */
AM62X_IOPAD(0x00A4, PIN_OUTPUT, 7) /* GPIO0_41 */
AM62X_IOPAD(0x00A8, PIN_OUTPUT, 7) /* GPIO0_42 */
>;
};
&main_gpio0 {
bootph-all;
pinctrl-names = "default";
pinctrl-0 = <&user_gpio_pins>;
status = "okay";
};
问题: 根据原理图 (PROC114E3)、这些 GPIO 引脚仅连接到用户扩展连接器、无需额外的硬件电路。 尽管 DTS 配置与工作引脚相同且 pinctrl 设置正确、但有哪些因素会阻止这些特定引脚响应 gpioset 命令? 这是否是这些特定 GPIO 引脚的已知硬件限制、内部下拉配置或设计注意事项?
预期行为: 所有 GPIO 引脚都应响应 gpioset 命令、并在配置为输出时能够输出 0V(低电平)和 3.3V(高电平)。
请提供任何指导或解释。
感谢您的时间和支持。 我期待着你就此问题提供指导。