NXP MCU 技术论坛
直播中

李艳

8年用户 1567经验值
私信 关注
[问答]

如何在iMX93 11x11 EVK中启用GPIO?

大家好,
               I'm trying to HIGH/LOW or toggle GPIO on J1001 based on the GPIO information provided by mcimx93evkum.pdf in the section 2.18 Expansion connector. 此跳线连接到 GPIO0、因此我使用的是 GPIO0_IO14 PIN NO
我可以直接在终端中使用 export 和 echo 命令吗?请做必要的。

回帖(1)

王娟

2025-4-16 18:05:29

在i.MX93 11x11 EVK上启用和控制GPIO0_IO14的步骤如下:




1. 确认GPIO编号


i.MX处理器的GPIO编号通常按 (bank * 32) + io 计算。对于 GPIO0_IO14



  • Bank 0,IO号为 14,因此sysfs编号为 14
    GPIO编号 = (0 * 32) + 14 = 14




2. 通过sysfs操作GPIO


步骤:




  1. 导出GPIO


    echo 14 > /sys/class/gpio/export


    • 成功后会生成目录 /sys/class/gpio/gpio14

    • 若报错 Device or resource busy,说明GPIO被占用,需检查设备树配置(见步骤3)。




  2. 设置方向为输出


    echo out > /sys/class/gpio/gpio14/direction



  3. 控制电平



    • 输出高电平:
      echo 1 > /sys/class/gpio/gpio14/value

    • 输出低电平:
      echo 0 > /sys/class/gpio/gpio14/value




  4. 取消导出(操作完成后)


    echo 14 > /sys/class/gpio/unexport





3. 检查GPIO是否被占用


如果步骤2失败(如报错 Device or resource busy),需检查:



  • 设备树配置:确保GPIO0_IO14未被复用为其他功能(如I2C、SPI)。

  • 内核占用:检查是否有驱动(如LED、按键)占用了该GPIO。


设备树配置示例(需重新编译并更新设备树):


// 在pinctrl_hog节点中配置GPIO0_IO14为普通GPIO
&iomuxc {
    pinctrl_hog: hoggrp {
        fsl,pins = <
            MX93_PAD_GPIO0_IO14__GPIO0_IO14   0x31e  // 配置为GPIO模式
        >;
    };
};



4. 权限问题



  • 操作sysfs可能需要root权限:
    sudo su

    或在命令前加 sudo


    sudo echo 14 > /sys/class/gpio/export




5. 验证GPIO电平



  • 使用万用表测量J1001连接器的对应引脚,或连接LED观察状态变化。




常见问题



  • GPIO编号错误:若操作无效果,确认GPIO编号是否正确(参考i.MX93数据手册)。

  • 内核配置:确保内核启用了 CONFIG_GPIO_SYSFS(一般默认启用)。


通过以上步骤,您应能通过终端直接控制GPIO0_IO14的电平。如果问题仍存在,请提供具体错误信息以便进一步排查。

举报

更多回帖

发帖
×
20
完善资料,
赚取积分