|
|
在论坛里面这个地址 https://www.right.com.cn/forum/f ... =%CA%FD%C2%EB%B9%DC
看到大神玩gpio,我也想跟着玩,上手就遇到问题了,gpio的编号跟管脚对应都搞不定,问了一圈无果自己瞎胡折腾的一点成果分享出来。
我的玩客云刷的 armbian 6.1.11-meson系统
1、首先 #cat /sys/kernel/debug/gpio 显示系统gpio的编号和管脚对应的文件,可以看到GPIOs 429-446由部分管脚可用。以下是系统输出和我添加的测试结果。
gpiochip1: GPIOs 413-428, parent: platform/c8100084.pinctrl, aobus-banks:
gpio-413 (UART TX )
gpio-414 (UART RX )
gpio-415 (RED_LED |onecloud:red:alive ) out lo
gpio-416 (GREEN_LED |onecloud:green:alive) out lo
gpio-417 (BLUE_LED |onecloud:blue:alive ) out lo
gpio-418 (BUTTON )
gpio-420 (IR_IN )
gpiochip0: GPIOs 429-511, parent: platform/c1109880.pinctrl, cbus-banks:
gpio-429 (7U1_PIN_18 ) /devices/platform/soc/c1100000.cbus/c1109880.pinctrl/gpio/gpiochip429
gpio-430 (7U1_PIN_19 ) 测试可用
gpio-431 (7U1_PIN_14 ) 测试可用
gpio-432 (7U1_PIN_15 ) 测试可用
gpio-433 (7U1_PIN_27 ) 测试可用
gpio-434 (7U1_PIN_25 ) 测试可用
gpio-435 (7U1_PIN_28 ) 测试可用
gpio-436 (7U1_PIN_26 ) 测试可用
gpio-437 (R_RightOf_LED )
gpio-438 (7U1_PIN_16 ) 测试可用
gpio-440 (7U1_PIN_12 ) 测试可用
gpio-441 (7U1_PIN_43 ) 测试可用
gpio-442 (7U1_PIN_42 ) 测试可用
gpio-443 (7U1_PIN_41(Resistor))
gpio-444 (7U1_PIN_44 ) 测试可用
gpio-445 (7U1_PIN_34 ) 测试可用
gpio-446 (7U1_PIN_13 ) 测试可用
gpio-447 (Resistor_TopOf_LED )
gpio-457 (Left_BottomOf_CPU )
gpio-458 (Right_BottomOf_CPU )
gpio-459 (VCCK_PWM (PWM_C) )
gpio-460 (I2CA_SDA )
gpio-461 (I2CA_SCL )
gpio-462 (I2CB_SDA )
gpio-463 (I2CB_SCL )
gpio-464 (VDDEE_PWM (PWM_D) )
gpio-466 (HDMI_HPD )
gpio-467 (HDMI_I2C_SDA )
gpio-468 (HDMI_I2C_SCL )
gpio-469 (ETH_PHY_INTR )
gpio-470 (ETH_PHY_NRST |PHY reset ) out hi ACTIVE LOW
gpio-471 (ETH_TXD1 )
gpio-472 (ETH_TXD0 )
gpio-473 (ETH_TXD3 )
gpio-474 (ETH_TXD2 )
gpio-475 (ETH_RGMII_TX_CLK )
gpio-476 (SD_D1 )
gpio-477 (SD_D0 )
gpio-478 (SD_CLK )
gpio-479 (SD_CMD )
gpio-480 (SD_D3 )
gpio-481 (SD_D2 )
gpio-482 (SD_CD |cd ) in hi ACTIVE LOW
gpio-483 (EMMC_D0 )
gpio-484 (EMMC_D1 )
gpio-485 (EMMC_D2 )
gpio-486 (EMMC_D3 )
gpio-487 (EMMC_D4 )
gpio-488 (EMMC_D5 )
gpio-489 (EMMC_D6 )
gpio-490 (EMMC_D7 )
gpio-491 (EMMC_CLK )
gpio-492 (EMMC_RSTn |reset ) out hi ACTIVE LOW
gpio-493 (EMMC_CMD )
gpio-494 (BOOT_SEL )
gpio-502 (ETH_RXD1 )
gpio-503 (ETH_RXD0 )
gpio-504 (ETH_RX_DV )
gpio-505 (RGMII_RX_CLK )
gpio-506 (ETH_RXD3 )
gpio-507 (ETH_RXD2 )
gpio-508 (ETH_TXEN )
gpio-509 (ETH_PHY_REF_CLK_25MO)
gpio-510 (ETH_MDC )
gpio-511 (ETH_MDIO )
2、编写了脚本来测试引脚,原理是通过改变引脚电平万用表测试引脚确认。
使用方法: 运行脚本,输入测试gpio的编号,万用表测试对应引脚的的电平,可以看到一个跳变的电压,高电平3.26伏(我的是这样)。
如此往复可以确认引脚。
#!/bin/bash
echo "请输入要测试的端口号,屏幕不会显示,输入结束直接回车就行了!"
read -s d
echo $d > /sys/class/gpio/export #申请访问端口
echo out > /sys/class/gpio/gpio$d/direction #设置端口为输出
for ((i=1;i<=10;i=i+1 ))
do
echo 1 > /sys/class/gpio/gpio$d/value #管脚输出高电平
sleep 1 #休眠一秒
echo 0 > /sys/class/gpio/gpio$d/value #管脚输出低电平
sleep 1 #休眠一秒
echo 0 > /sys/class/gpio/gpio$d/value #脚本结束前管脚输出低电平
echo $i #显示第几次测试,脚本默认10次
done
echo "测试结束"
echo $d > /sys/class/gpio/unexport #释放引脚
exit #脚本结束
|
|