Skip to main content

如何在 reComputer Jetson 开发板上使用 40 引脚 GPIO

本教程演示如何访问和控制 reComputer Jetson 开发板的 40 引脚 GPIO。在本教程中,我们以 reComputer J4012 为例。不过,其他 reComputer Jetson 开发板的操作步骤也是类似的。

开始之前​

在开始使用 reComputer Jetson 设备上的 40 引脚 GPIO 之前,您需要了解以下信息。

  • 每个 GPIO 引脚的电压电平为 3.3V
  • 由于 GPIO 引脚的电流限制,您无法通过 GPIO 为 reComputer Jetson 开发板反向供电

查找 GPIO 名称​

步骤 1: 打开 reComputer Jetson 开发板的数据手册。以下是所有可用的 reComputer Jetson 开发板的数据手册。

  • J101 载板

    • reComputer J1010
  • A206 载板

    • reComputer J2011
    • reComputer J2012
    • reComputer J1020
  • J202 载板

    • reComputer J2021
    • reComputer J2022
    • reComputer J1020 V2
  • J401 载板

    • reComputer J4011
    • reComputer J4012
    • reComputer J3010
    • reComputer J3011

这里我们选择了 reComputer J4012 的数据手册。

步骤 2: 导航到 40 Pin Expansion Header - J10 部分

步骤 3: 找到 Header Pin # 的名称,确保其在 Default Usage / Description 列下的默认用途是 GPIO

例如,查看 Header Pin 15。它的 Default Usage 是 GPIO

步骤 4: 对于同一个引脚,在 Module Pin Name 列下找到名称。在我们的例子中,它是 GPIO12

访问和控制 GPIO​

现在我们有两种不同的方法来访问 Jetson 开发板上的 GPIO,这取决于是否可以直接获得 GPIO 标签。使用第一种方法,我们可以在设备内执行命令后直接知道 GPIO 引脚标签。但是,如果引脚标签没有直接显示,您可以使用第二种方法。

方法 1​

在这种方法中,GPIO 的 dts 文件包含在您刷写的 JetPack 版本中,并且已经正确标记了 GPIO,因此您可以直接从设备获取引脚标签。

步骤 1: 进入 Jetson 设备的终端并执行此命令

sudo su
cat /sys/kernel/debug/gpio

步骤 2: 找到与我们之前获得的模块引脚名称对应的GPIO编号

在这种情况下,对应GPIO12的是gpio-268

步骤 3: 在终端中执行以下命令来导出gpio-268引脚

cd /sys/class/gpio
echo 268 > export

步骤 4: 设置方向并设置值。这里方向可以是 in/ out,值可以是 0/ 1

例如,将 GPIO12 设置为高电平

cd gpio268
echo "out" > direction
echo 1 > value

To set GPIO12 to LOW

echo 0 > value

步骤 5: 要将您导出的 GPIO 引脚设置回默认状态,请执行以下操作

cd ..
echo 268 > unexport

方法 2​

在这种方法中,您刷入的 JetPack 版本中不包含 GPIO 的 dts 文件,因此 GPIO 不会被正确标记。所以我们需要参考另一个文档(pinmux)来获取引脚标签信息。请根据 SoM 参考以下链接。

步骤 1: 根据您使用的 SoM 下载 pinmux 文档。这里我们选择 Jetson Orin NX/ Nano 文档

步骤 2: 找到与我们之前获得的模块引脚名称对应的 GPIO 标签(在 Customer Usage 列下)。例如,对于 GPIO12,它是 GPIO3_PN.01,这里我们参考 PN.01

步骤 3: 进入 Jetson 设备的终端并执行此命令

sudo su
cat /sys/kernel/debug/gpio

步骤 4: 找到与我们之前获得的 GPIO 标签 对应的 GPIO 编号

在这种情况下,它是对应于 PN.01 的 gpio-433,这也等于 GPIO12

步骤 5: 在终端中执行以下命令来导出 gpio-433 引脚

cd /sys/class/gpio
echo 433 > export

步骤 6: 设置方向并设置值。这里方向可以是 in/ out,值可以是 0/ 1

例如,将 GPIO12 设置为 HIGH

cd PN.01
echo "out" > direction
echo 1 > value

To set GPIO12 to LOW

echo 0 > value

步骤 7: 要将您导出的 GPIO 引脚设置回默认状态,请执行以下操作

cd ..
echo 433 > unexport

对于 Jetpack6+​

与方法2类似,我们需要参考另一个文档(pinmux)并获取此引脚标签信息。根据SoM参考以下链接。

步骤1: 根据您使用的SoM下载pinmux文档。这里我们选择Jetson Orin NX/ Nano文档

步骤2: 找到与我们之前获得的模块引脚名称对应的GPIO标签(在Customer Usage列下)。例如,对于GPIO12,它是GPIO3_PN.01,这里我们参考PN.01

步骤3: 进入Jetson设备的终端并执行此命令

sudo apt update
sudo apt install gpiod

gpioinfo

步骤 4: 找到与我们之前获得的 GPIO 标签 对应的 GPIO 编号

在这种情况下,gpiochip0 line85 对应 PN.01,这也等于 GPIO12

步骤 5: 然后我们可以使用 gpioset 命令来配置 GPIO 的工作模式。

# To set GPIO12 to HIGH
sudo gpioset --mode=wait gpiochip0 85=1
# To set GPIO12 to LOW
sudo gpioset --mode=wait gpiochip0 85=0
info

如果您想了解更多关于 gpioset 命令的信息,请参考: https://www.acmesystems.it/gpiod

资源​

技术支持与产品讨论​

感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。

Loading Comments...