跳到主要内容

GPIO输出功能

GPIO输出功能1、GPIO引脚图对照表2、jetson orin super GPIO 修复1.busybox修改寄存器(以物理引脚31为例)2.更改设备树(以更改物理引脚7为例)3、程序效果

1、GPIO引脚图对照表

GPIO.BOARD 12引脚对应GPIO.BCM 18引脚:

image-20250110104701325

2、jetson orin super GPIO 修复

注意:在升级到jetson orin super 之后,大部分GPIO 口由原来的双向(输入+输出)变成了仅输入,现在提供两种方案修改GPIO成双向接口。

1.busybox修改寄存器(以物理引脚31为例)

此方案为临时方案,修改完寄存器配置后每次重启会失效,如果需要保持一直生效可参考第二种方案。

图片中出现的文档可参考附件-jetson gpio中的文档,都是从官方找到下载的(软件资料\资料文档\jetson-gpio)。

经查询得知:物理引脚31 ----对应GPIO11--- 对应SOC_GPIO33,对应PADCTL_G3 地址=PADCTL_A0 为0x2430000,SOC_GPIO33对应则为0x2430070(可参考下列图片)

4c6a23356ceda45eed9a1ad60bfe2aba

B94A28D0-A064-4a1d-AD7F-D6FF66D85C33

image-20250627154137550

Pinmux寄存器地址:

image-20250627154221698

image-20250627154334109

  • The Offset is 0x70.

  • The Pinmux register address is 0x2430070

1.1 安装busybox

sudo apt install busybox

1.2 设置gpio引脚为输出:

xxxxxxxxxx sudo busybox devmem 0x02430070 w 0x004

1.3 测试输出

image-20250626174001479

xxxxxxxxxx cd ~/jetson-gpio/samples ​ export JETSON_MODEL_NAME=JETSON_ORIN_NANO ​ python3 simple_out.py

设置完成后,参考BCM编码,将测试用例中的编码改为对应值,再运行下面的测试案例,即可发现物理引脚31 高低电平来回切换

2.更改设备树(以更改物理引脚7为例)

注意:此方案需要对设备树有一定了解,不建议新手操作。此方案成功后,设置的gpio 引脚会变成双向引脚,即输入+输出。

物理引脚7 对应GPIO 09 对应SOC_GPIO59 对应的设备树名称为soc_gpio59_pac6

image-20250627164844307

将软件资料\资料文档\jetson-gpio里的jetson-orin-gpio-patch-main 文件放入jetson orin 中,打开pin7_as_gpio.dts 文件,将圈出来的地方更改为自己需要更改的GPIO 引脚

3707183386d1fac37ae5862fbcb6ea95

在jetson-orin-gpio-patch 下分别运行指令

xxxxxxxxxx dtc -O dtb -o pin7_as_gpio.dtbo pin7_as_gpio.dts #根据不同GPIO 口名称可自己改动生成的文件名称 sudo cp pin7_as_gpio.dtbo /boot sudo /opt/nvidia/jetson-io/jetson-io.py

image-20250627161139058

da0fc218ac19c07d4009b319803bfd57

image-20250627161757076

image-20250627161841824

image-20250627161850808

开始测试:

xxxxxxxxxx cd ~/jetson-gpio/samples xxxxxxxxxx export JETSON_MODEL_NAME=JETSON_ORIN_NANO xxxxxxxxxx python3 simple_out.py

设置完成后,参考BCM编码,将测试用例中的编码改为对应值,再运行下面的测试案例,即可发现物理引脚7 高低电平来回切换

3、程序效果

使用杜邦线将GPIO.BOARD 6和GND引脚引出来,使用万用表可以测量引脚电压变化:

注意:请勿接错或者造成引脚短路,失误可能导致主板硬件损坏!

image-20250110105307003