reComputer Jetson ボードで 40 ピン GPIO を使用する方法
この wiki では、reComputer Jetson ボードの 40 ピン GPIO にアクセスして制御する方法を説明します。この wiki では、例として reComputer J4012 を使用しています。ただし、他の reComputer Jetson ボードでも手順は同様です。
始める前に
reComputer Jetson デバイスで 40 ピン GPIO を使用する前に知っておく必要がある情報をいくつか紹介します。
- GPIO ピンあたりの電圧レベルは 3.3V です
- GPIO ピンからの電流制限により、GPIO 経由で reComputer Jetson ボードに逆電力供給することはできません
GPIO 名を見つける
ステップ 1: reComputer Jetson ボードのデータシートを開きます。以下に、利用可能なすべての reComputer Jetson ボードのデータシートを示します。
-
- reComputer J1010
-
- reComputer J2011
- reComputer J2012
- reComputer J1020
-
- reComputer J2021
- reComputer J2022
- reComputer J1020 V2
-
- reComputer J4011
- reComputer J4012
- reComputer J3010
- reComputer J3011
ここでは reComputer J4012 のデータシートを選択しました。
ステップ 2: 40 Pin Expansion Header - J10 セクションに移動します

ステップ 3: Default Usage / Description 列で、デフォルトの使用法が GPIO である Header Pin # の名前を見つけます
例えば、Header Pin 15 を確認してください。その Default Usage は GPIO です

ステップ 4: 同じピンについて、Module Pin Name 列の下の名前を見つけます。この例では、GPIO12 です
GPIO へのアクセスと制御
GPIO ラベルが直接利用できるかどうかに基づいて、Jetson ボード上の GPIO にアクセスする 2 つの異なる方法があります。最初の方法を使用すると、デバイス内でコマンドを実行した後、GPIO ピンラベルを直接知ることができます。ただし、ピンラベルが直接表示されない場合は、2 番目の方法を使用できます。
方法 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をHIGHに設定するには
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
Step 4: 前に取得したGPIOラベルに対応するGPIO番号を見つける

この場合、PN.01に対応するgpio-433であり、これはGPIO12と等しい
Step 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
GPIO12をLOWに設定するには
echo 0 > value
ステップ 7: エクスポートしたGPIOピンをデフォルト状態に戻すには、以下を実行します
cd ..
echo 433 > unexport
Jetpack6+の場合
方法2と同様に、別の文書(pinmux)を参照し、このピンラベル情報を取得する必要があります。SoMに応じて以下のリンクを参照してください。
ステップ1: 使用しているSoMに応じてpinmux文書をダウンロードします。ここではJetson Orin NX/ Nano文書を選択します
ステップ2: 前に取得したModule Pin Nameに対応するGPIOラベル(Customer Usage列の下)を見つけます。例えば、GPIO12の場合、それはGPIO3_PN.01であり、ここではPN.01を参照します

ステップ3: Jetsonデバイスのターミナルに入り、このコマンドを実行します
sudo apt update
sudo apt install gpiod
gpioinfo
Step 4: 前に取得したGPIOラベルに対応するGPIO番号を見つける


この場合、PN.01に対応するのはgpiochip0 line85で、これはGPIO12と等しくなります
Step 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
gpioset コマンドについてさらに詳しく知りたい場合は、こちらを参照してください: https://www.acmesystems.it/gpiod
技術サポート & 製品ディスカッション
私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを用意しています。