Orin Nano&NX GPIO教程
使用Orin Nano或Orin NX,在JetPack6系统上,控制GPIO的输入与输出
JetPack6 GPIO配置说明
1.获取GPIO口的寄存器地址
1.GPIO口位置图
2.PADCTL基地址与GPIO口偏移量
PADCTL_A0(PADCTL_G3) 0x02430000
PADCTL_A4(PADCTL_G4) 0x02434000
PADCTL_A16(PADCTL_EDP) 0x02440000
PADCTL_A24(PADCTL_G7) 0x02448000
7号 GPIO09 PADCTL_G7_SOC_GPIO59_0 0x30 gpio-492 PAC.06 0x02448030
15号 GPIO12 PADCTL_EDP_SOC_GPIO39_0 0x20 gpio-433 PN.01 0x02440020
29号 GPIO01 PADCTL_G3_SOC_GPIO32_0 0x68 gpio-453 PQ.05 0x02430068
31号 GPIO11 PADCTL_G3_SOC_GPIO33_0 0x70 gpio-454 PQ.06 0x02430070
32号 GPIO07 PADCTL_G4_SOC_GPIO19_0 0x80 gpio-389 PG.06 0x02434080
33号 GPIO13 PADCTL_G4_SOC_GPIO21_0 0x40 gpio-391 PH.00 0x02434040
3.(可选)参考官方教程
2.使用命令行控制GPIO
1.安装busybox与libgpiod2
sudo apt install busybox libgpiod2
2.获取寄存器地址与GPIO名称
以31号引脚为例,0x02430070为寄存器地址,PQ.06为GPIO名称
请通过上一节1.2 PADCTL基地址与GPIO口偏移量 查询具体值
3.设置GPIO为输入模式
上电默认为输入模式,也可以通过命令行再次设置为输入模式
sudo busybox devmem 0x02430070 w 0x58
获取GPIO当前状态,返回值1为高电平,0为低电平
gpioget $(gpiofind "PQ.06")
4.设置GPIO为输出模式
通过命令行设置为输出模式
sudo busybox devmem 0x02430070 w 0x0
设置GPIO输出,1为高电平,0为低电平
gpioset --mode=wait $(gpiofind "PQ.06")=1
JetPack5 GPIO配置说明
1.获取GPIO口的引脚名称与编号
1.GPIO口位置图
2.GPIO口的引脚名称与编号
7号 GPIO09 492 PAC.06
15号 GPIO12 433 PN.01
29号 GPIO01 453 PQ.05
31号 GPIO11 454 PQ.06
32号 GPIO07 389 PG.06
33号 GPIO13 391 PH.00
2.使用命令行控制GPIO
1.获取GPIO口的引脚名称与编号
以31号引脚为例,454为GPIO口编号,PQ.06为引脚名称
请通过上一节1.2 GPIO口的引脚名称与编号
2.提升至root权限,启用GPIO口
sudo bash
echo 454 > /sys/class/gpio/export
2.设置GPIO为输入模式
echo in > /sys/class/gpio/PQ.06/direction
获取GPIO当前状态,返回值1为高电平,0为低电平
cat /sys/class/gpio/PQ.06/value
3.设置GPIO为输出模式
echo out > /sys/class/gpio/PQ.06/direction
设置GPIO输出,1为高电平,0为低电平
echo 1 > /sys/class/gpio/PQ.06/value