GPIO
简介
reComputer 载板上的 GPIO 插针是一种多功能硬件接口,用于将 AI 计算模块直接与外部传感器和执行器连接。它具有与树莓派生态系统高度兼容的引脚排列,允许开发者轻松集成现成的电子产品以实现快速原型设计。除了基本的数字输入和输出,这些复用引脚还可以配置为支持标准通信协议(如 I2C、SPI、UART 和 PWM),使开发者能够使用 Jetson.GPIO 等简单库对机器人和物联网项目进行无缝硬件控制。
reComputer J401
reComputer J401
Jetson.GPIO 是 NVIDIA 用于控制 Jetson 设备上 40 针 GPIO 插针的 Python 库。它的 API 有意与 RPi.GPIO 类似,使来自树莓派开发的用户能够轻松上手。
使用 pip 安装
如果库未预装,最简单的方法是:
sudo pip3 install Jetson.GPIO
手动安装
如果需要从源码安装库:
mkdir -p /opt/seeed/development_guide/05_gpio
cd /opt/seeed/development_guide/05_gpio
git clone https://github.com/NVIDIA/jetson-gpio
cd jetson-gpio
sudo python3 setup.py install
用户权限
允许当前用户访问 GPIO:
sudo groupadd -f -r gpio
sudo usermod -a -G gpio seeed如有需要,请将 seeed 替换为您的实际用户名。
Udev 规则
复制规则文件并重新加载 udev:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio
sudo cp lib/python/Jetson/GPIO/99-gpio.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm trigger
JetPack 6.2 兼容性说明
在某些 JetPack 6.2 配置中,使用库之前可能需要导出模型名称:
export JETSON_MODEL_NAME=JETSON_ORIN_NANO40 针
GPIO 是通用输入/输出的缩写。这些引脚允许软件读取外部数字信号或驱动简单的外围设备(如 LED、按钮、蜂鸣器)和控制线。
编号模式
Jetson.GPIO 库支持两种常见的编号方案:
| 模式 | 描述 | 典型用途 |
|---|---|---|
BOARD | 按 40 针连接器上的物理位置对引脚进行编号 | 当您直接从连接器的丝印或引脚图布线时最佳 |
BCM | 按库使用的 GPIO 映射对引脚进行编号 | 当您遵循引用逻辑 GPIO ID 的 Python GPIO 示例时最佳 |
GPIO.BOARD 布局

GPIO.BCM 布局

引脚参考示例
下图显示了在测试输入或输出功能之前有用的额外引脚参考示例。

GPIO 输入
本节介绍如何通过将测试引脚连接到 GND 和 3.3V 并在软件中观察输入状态来读取 Jetson 上的 GPIO 输入。
硬件连接
使用跳线按如下图所示连接插针。简单的测试方法是先将 GPIO.BOARD 12 连接到 GND。

[!CAUTION] 布线前请仔细检查引脚映射。错误的连接可能会使电路板短路。
读取信号
从 jetson-gpio 示例运行示例脚本:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
sudo python3 simple_input.py
如果结果与预期的低电平匹配,将测试引脚从 GND 重新连接到 3.3V 并再次运行脚本:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
python3 simple_input.py
终端输出现在应显示高电平信号。
GPIO 输出
简介
在 JetPack 6.2 上,许多以前同时支持输入和输出的引脚在调整 pinmux 之前可能仅表现为输入模式。本节介绍两种恢复支持引脚输出功能的实用方法:
- 临时的
busybox devmem方法 - 更持久的设备树覆盖(device-tree overlay)方法
方法 1:使用 busybox 临时输出
步骤 1:查询 Pinmux 寄存器
使用 jetson-gpio-pinmux-lookup 查找插针的寄存器地址:
jetson-gpio-pinmux-lookup 31
下图显示了该引脚返回的寄存器值。

步骤 2:配置输出模式
如有需要,安装 busybox:
sudo apt install busybox然后写入 pinmux 寄存器值:
sudo busybox devmem 0x02430070 w 0x004
步骤 3:运行输出测试
更新示例脚本以使用适合您测试用例的正确 BCM 引脚,然后运行:


cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
export JETSON_MODEL_NAME=JETSON_ORIN_NANO
python3 simple_out.py
您可以使用万用表或示波器验证输出电平变化。
方法 2:设备树覆盖
如果您希望引脚配置持久化,这种方法更好。
克隆辅助项目并编辑 DTS 文件:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio
git clone https://github.com/jetsonhacks/jetson-orin-gpio-patch.git
cd jetson-orin-gpio-patch
vim pin7_as_gpio.dts
调整要更改的 GPIO 引脚定义,然后构建覆盖:
dtc -O dtb -o pin7_as_gpio.dtbo pin7_as_gpio.dts
sudo cp pin7_as_gpio.dtbo /boot
sudo /opt/nvidia/jetson-io/jetson-io.py

启用覆盖后,在测试脚本中使用已知的 BCM 引脚编号。

再次运行输出测试:
cd /opt/seeed/development_guide/05_gpio/jetson-gpio/samples
python3 simple_out.py参考
reComputer Super J401
reComputer Super J401
简介
GPIO 是通用输入/输出的缩写。这些引脚允许软件读取外部数字信号或驱动简单的外围设备(如 LED、按钮、蜂鸣器)和控制线。reComputer Super 具有 40 针扩展连接器,可访问 GPIO 引脚,方便与外部设备集成。

硬件连接
reComputer Super 具有 40 针扩展连接器,可访问 GPIO 引脚。要使用 GPIO 引脚,您需要将外部设备连接到该连接器上的相应引脚。
40 针连接器引脚定义
40 针连接器的详细信息如下:
| 连接器引脚 | 信号 | BGA 引脚 | 默认功能 |
|---|---|---|---|
| 1 | 3.3V | - | 主 3.3V 电源 |
| 2 | 5V | - | 主 5V 电源 |
| 3 | I2C1_SDA | PDD.02 | I2C #1 数据 |
| 4 | 5V | - | 主 5V 电源 |
| 5 | I2C1_SCL | PDD.01 | I2C #1 时钟 |
| 6 | GND | - | 地 |
| 7 | GPIO09 | PAC.06 | 通用输入/输出 |
| 8 | UART1_TXD | PR.02 | UART #1 发送 |
| 9 | GND | - | 地 |
| 10 | UART1_RXD | PR.03 | UART #1 接收 |
| 11 | UART1_RTS | PR.04 | UART #1 请求发送 |
| 12 | I2S0_SCLK | PH.07 | 音频 I2S #0 时钟 |
| 13 | SPI1_SCK | PY.00 | SPI #1 时钟 |
| 14 | GND | - | 地 |
| 15 | GPIO12 | PN.01 | 通用输入/输出 |
| 16 | SPI1_CS1 | PY.04 | SPI #1 片选 #1 |
| 17 | 3.3V | - | 主 3.3V 电源 |
| 18 | SPI1_CS0 | PY.03 | SPI #1 片选 #0 |
| 19 | SPI0_MOSI | PZ.05 | SPI #0 主机输出/从机输入 |
| 20 | GND | - | 地 |
| 21 | SPI0_MISO | PZ.04 | SPI #0 主机输入/从机输出 |
| 22 | SPI1_MISO | PY.01 | SPI #1 主机输入/从机输出 |
| 23 | SPI0_SCK | PZ.03 | SPI #0 时钟 |
| 24 | SPI0_CS0 | PZ.06 | SPI #0 片选 #0 |
| 25 | GND | - | 地 |
| 26 | SPI0_CS1 | PZ.07 | SPI #0 片选 #1 |
| 27 | ID_I2C_SDA (I2C0_SDA) | PDD.00 | I2C #0 数据 |
| 28 | ID_I2C_SCL (I2C0_SCL) | PCC.07 | I2C #0 时钟 |
| 29 | GPIO01 | PQ.05 | 通用输入/输出 |
| 30 | GND | - | 地 |
| 31 | GPIO11 | PQ.06 | 通用输入/输出 |
| 32 | GPIO07 | PG.06 | 通用输入/输出 |
| 33 | GPIO13 | PG.00 | 系统保留 |
| 34 | GND | - | 地 |
| 35 | I2S0_LRCK (I2S0_FS) | PI.02 | 音频 I2S #0 帧同步 |
| 36 | UART1_CTS | PR.05 | UART #1 清除发送 |
| 37 | SPI1_MOSI | PY.02 | SPI #1 主机输出/从机输入 |
| 38 | I2S0_SDIN (I2S0_DIN) | PI.01 | 音频 I2S #0 数据输入 |
| 39 | GND | - | 地 |
| 40 | I2S0_SDOUT (I2S0_DOUT) | PI.00 | 音频 I2S #0 数据输出 |
GPIO 库安装
编号模式
Jetson.GPIO 库支持两种常见的编号方案:
| 模式 | 描述 | 典型用途 |
|---|---|---|
BOARD | 按 40 针连接器上的物理位置对引脚进行编号 | 当您直接从连接器的丝印或引脚图布线时最佳 |
BCM | 按库使用的 GPIO 映射对引脚进行编号 | 当您遵循引用逻辑 GPIO ID 的 Python GPIO 示例时最佳 |
GPIO 使用示例
基础 GPIO 输出
import Jetson.GPIO as GPIO
import time
# 设置 GPIO 模式
GPIO.setmode(GPIO.BOARD)
# 定义引脚
output_pin = 12
# 设置引脚
GPIO.setup(output_pin, GPIO.OUT)
try:
while True:
# 点亮引脚
GPIO.output(output_pin, GPIO.HIGH)
time.sleep(1)
# 关闭引脚
GPIO.output(output_pin, GPIO.LOW)
time.sleep(1)
except KeyboardInterrupt:
# 清理
GPIO.cleanup()基础 GPIO 输入
import Jetson.GPIO as GPIO
import time
# 设置 GPIO 模式
GPIO.setmode(GPIO.BOARD)
# 定义引脚
input_pin = 11
# 设置引脚
GPIO.setup(input_pin, GPIO.IN)
try:
while True:
# 读取引脚值
value = GPIO.input(input_pin)
print(f"引脚值: {value}")
time.sleep(0.5)
except KeyboardInterrupt:
# 清理
GPIO.cleanup()Super 特定 GPIO 功能
reComputer Super 的 40 针连接器可访问多种 GPIO 引脚,实现与外部设备的灵活集成。这使其成为各种应用的理想选择,包括:
- 控制 LED 和其他指示灯
- 读取按钮按下和传感器输入
- 控制电机和执行器
- 与其他微控制器和设备接口
安全注意事项
- 通电前务必仔细检查引脚连接
- 连接 LED 和其他组件时使用适当的电阻
- 避免 GPIO 引脚短路
- 注意 GPIO 引脚的最大电流额定值
进一步阅读
Seeed Jetson AGX Orin Kit
Seeed Jetson AGX Orin Kit
简介
Seeed Jetson AGX Orin Kit 包含一个 40 针(2 × 20,2.54 mm 间距)扩展连接器(J30)。
40 针连接器引脚定义
40 针扩展连接器包括各种音频和控制接口,包括:
- 音频:I2S、数字麦克风、时钟和控制
- I2C (2x)、SPI、UART、CAN 和 PWM (2x)
- GPIO(专用以及与其他接口引脚共享)
所有信号引脚均为 3.3V 电平。
[!NOTE] 40 针扩展连接器上的许多信号来自 TI TXB0108 电平转换器。由于这些器件的设计,输出驱动器非常弱,因此可以通过另一个连接的设备输出过驱动以支持双向。这些缓冲区相关的信号在以下表格的注释列中有一个"3"。有关详细信息,请参阅 Jetson Nano Developer Kit 40 针扩展连接器 GPIO 使用注意事项应用说明。


[!NOTE] 注释:
- 这是每个电源引脚的电流能力。
- 这些引脚通过 FXMA2102L8X 电平转换器连接到 SoC。它们是开漏(要么上拉,要么在配置为输出时由 SoC 驱动为低电平)。满足数据手册 VOL 的最大驱动能力为 1mA。
- 参见上表的相关注释。
- 这些引脚连接到 SN74LVC4T245 缓冲器。
- 这些引脚直接连接到 SoC。满足完整数据手册 VOL/VOH 的最大驱动能力为 1mA。
- 关于上电默认值,"pd" = SoC 内部下拉,"pu" = SoC 内部上拉,"z" = 三态
- 在类型/方向列中,输出是指向扩展连接器,输入是指从扩展连接器。双向是指双向信号。
- 指示的方向与参考设计原理图中指示的方向一致。这些信号支持 GPIO 功能,可以是双向的。
自动化连接器
Seeed Jetson AGX Orin Kit 包含一个 12 针、2.54 mm 间距的连接器(J42),可访问多个关键系统控制信号。
- 引脚 #1, #12: GND
- 引脚 #2, #3, #4: 输入,与三个按钮具有相同功能:Recovery、Reset、Power。
- 引脚 #5-#6: 断开:自动开机禁用;短路:自动开机启用。
- 引脚 #7: CVB_STBY: 输出,指示模块是否处于睡眠状态。
- 引脚 #8: SYSTEM_OC: 输入,用于触发 Tegra 节流。
- 引脚 #9-#10: 断开:从关闭状态唤醒(启动)局域网已禁用;短路:从关闭状态唤醒(启动)局域网已启用。
- 引脚 #11: JTAG_TRST,JTAG 测试复位。
