NXP i.MX6 GPIO value值读取为0

项目场景:

眺望电子TW-IMX6DL-EVM开发板上开发时发现,即使IO口设置为输出状态,设置其电平为高,硬件上测量电平也是对的,但是gpio_get_value获取的状态一直是0。

编译环境及开发包:
主机:ubuntu18.04
交叉编译器:arm-linux-gnueabihf-gcc
QT5.12.8:qt-everywhere-opensource-src-5.12.8
开发板:TW-IMX6DL-EVM
Linux:Linux-4.1.15
串口工具:Xshell

注意:本文章的所有命令涉及到的路径均为眺望电子官方环境路径,需根据自身实际环境改变。本文所演示的平台来自于眺望电子 iMX6 ARM嵌入式平台,这是一个基于NXP iMX6 ARM处理器,支持单核/双核Cortex-A9的核心板。


解决方案:

1.配置SION位,使IO口在输出状态下可以正确获取状态。

这里以DTS配置为例:
&iomux {
    pinctrl-name = "default";
    pinctrl-0 = <&pinctrl_hog_1>;
    imx6ul-evk {
        ...
        /* 第29位配置为4,即表示设置SION位 */
        MX6UL_PAD_GPIO1_IO09__GPIO1_IO09    0x40017059 
        ...
    };
    ...
};

2.参考资料:

drivers/pinctrl/freescale/pinctrl-imx.c 

关键词:IMX_PAD_SION

上一篇:PCB设计


下一篇:SAS truncover scanover pad missover选项