点LED
一上来想使用GPIOA14脚位,却发现脚位电平一直是高电平无法设置。
根据官方文档说明:
GPIO0 对应linux组号值为 480
GPIO1 对应linux组号值为 448
GPIO2 对应linux组号值为 416
GPIO3 对应linux组号值为 404
PWR_GPIO 对应linux组号值为 380
那使用GPIOA14(如官网图片中左侧的倒数第二个引脚),GPIO编号是480+14=494,设置输出,然后设置0和1,输出的都是1,没有变化。
同样的操作更换GPIOC9,GPIO编号416+9=425,设置输出,设置电平高低又是有效的。
这个问题是官网的引脚图错了,还是引脚编号的计算有问题???
那GPIOA14编号应该是494,但是设置一直无效,后来根据论坛反馈,应该是复用问题,需要使用配置工具,重新配置GPIO的脚位功能。
[Milk-V Duo 引脚复用配置工具 cvi_pinmux]
cvi_pinmux.tar.gz 通过scp或其他方式传到Duo上
scp cvi_pinmux.tar.gz root@192.168.42.1:/root/
在Duo终端中解压安装(会安装到/usr/bin目录下) :
tar zxf cvi_pinmux.tar.gz -C /
查看当前所有IO信息
cvi_pinmux -l
该工具查询或设置某个引脚,首先要知道这个引脚的名字,名字可以在原理图中找到
GPIOA14被SDIO的EN脚位用掉了,不再是普通GPIO,这里重新设置下
查询这个引脚当前的配置
cvi_pinmux -r SD0_PWR_EN
可以看到当前复用为GPIO_14, 我们这里需要设置为XGPIOA_14
cvi_pinmux -w SD0_PWR_EN/XGPIOA_14
再用cvi_pinmux -r SD0_PWR_EN 查看的话,已经配置为XGPIOA_14了
同样的方法,可以配置其他脚位的GPIO,如果遇到GPIO设置不成功的话。
下面是演示视频,点LED。
点LED
|