此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/export
和echo 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似乎都默认为输入。
1条答案
按热度按时间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引脚配置的详细信息,并可帮助诊断任何潜在问题。