【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A GPIO口编号确认
[复制链接]
本帖最后由 六尘不改 于 2023-10-1 18:29 编辑
1.先说结论
通过测试,我发现我的板卡引出的IO1_3~IO1_6编号与WIKI不一致。经确认,正确的编号如下:
NUM |
IO_NUM |
451 |
IO 1_3 |
452 |
IO 1_4 |
453 |
IO 1_5 |
454 |
IO 1_6 |
供有同样问题的朋友参考。
2.GPIO编号问题
我的项目需要使用IO口读取外部模块状态,所以在烧录了0920镜像后,优先着手调试了GPIO,但是按WIKI教程无法修改IO状态。这时仔细查找发现内核GPIO编号与WIKI上并不对应。
WIKI上:
荔枝派内核:
查看内核
sudo cat /sys/kernel/debug/gpio
与WIKI不一致。通过比对已映射的IO,我推论我的板卡IO1_3~IO1_6并未在gpiochip4,而是在gpiochip1,且IO编号的偏移地址正确。即448应是 IO1_0,451-454对应IO1_3-6.
2.GPIO编号确认
采用通用sysfs文件系统的方式操作GPIO,此方法将gpio映射到sysfs文件系统中,操作/sys/class/gpio里的文件来对GPIO进行相关的配置。
修改WIKI脚本如下:
#!/bin/bash
num=451
echo ${num} > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio${num}/direction
echo 1 > /sys/class/gpio/gpio${num}/value
sleep 10
echo 0 > /sys/class/gpio/gpio${num}/value
echo ${num} > /sys/class/gpio/unexport
运行程序:
chmod +x ./gpio.sh
sudo ./gpio.sh
使用万用表测试,IO1_3的电平可立即变为高电平1.8V,10秒后,IO1_3变为低电平0V。依次测试IO1_4-6,均通过。
证明推论正确。
也可以使用GPIOD库可以测试,将WIKI上例程里源代码和给权限的gpiochip4改为gpiochip1即可。
|