在连接到逻辑高电压的引脚上运行Linux gpioget始终读取零

8nuwlpux  于 2023-06-29  发布在  Linux
关注(0)|答案(1)|浏览(96)

bounty已结束。此问题的答案有资格获得+50声望奖励。赏金宽限期7小时后结束。Christopher Theriault希望引起更多注意这个问题:需要一个答案,引导我解决我的设置问题。

使用Ka-ro Electronics的QSXP-M181 SOM,我们将一条线连接到GPIO bank 2引脚18,即设备上的物理引脚41(引脚50连接到Linux内核)。已使用万用表验证此引脚是否正确连接到逻辑高电压。该存储体的gpioinfo转储如下:

gpiochip1 - 32 lines:
        line   0:      unnamed       unused   input  active-high
        line   1:      unnamed       unused   input  active-high
        line   2:      unnamed       unused   input  active-high
        line   3:      unnamed       unused   input  active-high
        line   4:      unnamed       unused   input  active-high
        line   5:      unnamed       unused   input  active-high
        line   6:      unnamed       unused   input  active-high
        line   7:      unnamed       unused   input  active-high
        line   8:      unnamed       unused   input  active-high
        line   9:      unnamed       unused   input  active-high
        line  10:      unnamed       unused   input  active-high
        line  11:      unnamed       unused   input  active-high
        line  12:      unnamed       unused   input  active-high
        line  13:      unnamed       unused   input  active-high
        line  14:      unnamed       unused   input  active-high
        line  15:      unnamed       unused   input  active-high
        line  16:      unnamed       unused   input  active-high
        line  17:      unnamed       unused   input  active-high
        line  18:      unnamed       unused   input  active-high
        line  19:      unnamed       unused   input  active-high
        line  20:      unnamed       unused   input  active-high
        line  21:      unnamed       unused   input  active-high
        line  22:      unnamed       unused   input  active-high
        line  23:      unnamed       unused   input  active-high
        line  24:      unnamed       unused   input  active-high
        line  25:      unnamed       unused   input  active-high
        line  26:      unnamed       unused   input  active-high
        line  27:      unnamed       unused   input  active-high
        line  28:      unnamed       unused   input  active-high
        line  29:      unnamed       unused   input  active-high
        line  30:      unnamed       unused   input  active-high
        line  31:      unnamed       unused   input  active-high

执行gpioget 1 18(这是此引脚的正确参考)时,它始终返回零。gpio目录的内容包括:

ls /sys/class/gpio
export  gpiochip0  gpiochip128  gpiochip32  gpiochip64  gpiochip96  unexport

如果首先使用echo 50 > /sys/class/gpio/exportecho in > /sys/class/gpio/gpio50/direction声明引脚,我们可以看到这是有效的,但阅读/gpio50/value仍然返回零。

ls /sys/class/gpio
export  gpio50  gpiochip0  gpiochip128  gpiochip32  gpiochip64  gpiochip96  unexport

目前尚不清楚这里做错了什么。在作为输出的系统引脚上使用gpioset的操作会产生正确的结果。显然,chardev应该是这些方法的替代品,但它不能从命令行运行。还有什么可以调查,看看为什么这些输入引脚总是读零?
编辑#1:对“您是否在设备树中正确配置了引脚控制?“(我试着把这一点作为评论,为什么当你需要回复人的时候会有字符限制?)
我从这个参考工作:https://developer.technexion.com/docs/using-gpio-from-a-linux-shell,其中没有说任何关于设备树,所以我不能确认任何关于这一点没有额外的细节,如何验证设备树设置或纠正他们,如果他们是错误的。我还应该提到,上述网站说,如果产品使用gpio扩展器,您必须检查base文件以正确导出内核引脚号,如果我使用cat /sys/class/gpio/gpiochip32/base,则得到32,这符合我使用的通用((bank - 1)* 32)+引脚公式,这也可以正确打开我们连接到输出的引脚上的LED。我还应该提到,gpioinfo表明所有gpio似乎都默认为输入。

nzk0hqpo

nzk0hqpo1#

从QSXP-M181 SOM设备上的GPIO引脚41(物理引脚)阅读输入值时似乎遇到问题。以下是进一步调查该问题的一些建议:
1.验证设备树配置:检查设备树中GPIO 41的引脚控制是否正确配置。设备树定义系统的硬件配置,包括GPIO引脚Map。确保正确定义管脚并将其分配给正确的控制器。
1.检查接点方向并导出:确保GPIO引脚已导出并设置为正确的方向。您提到您使用了以下命令:
echo 50 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio50/direction

确认引脚导出成功,并设置为输入引脚。

1.检查引脚值:将引脚方向设置为input后,可以从/sys/class/gpio/gpio 50/value文件中读取其值。请确保文件存在并且正确读取了值。
1.审查器械文件:有关使用QSXP-M181 SOM上的GPIO引脚的具体说明,请参阅Ka-ro Electronics提供的文档或用户手册。文档可以提供对GPI 0操作所需的任何特定配置或考虑的见解。
1.使用GPIO工具调试:考虑使用GPIO调试工具(如gpioinfo或gpiod)进一步调查问题。这些工具提供有关GPIO引脚配置的详细信息,并可帮助诊断任何潜在问题。

相关问题