メインコンテンツまでスキップ

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 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

ステップ 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

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

ステップ 4: 前に取得したGPIOラベルに対応するGPIO番号を見つける

この場合、PN.01に対応するのはgpiochip0 line85で、これは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
備考

gpioset コマンドについてさらに詳しく知りたい場合は、こちらを参照してください: https://www.acmesystems.it/gpiod

参考資料​

技術サポート & 製品ディスカッション​

私たちの製品をお選びいただき、ありがとうございます!私たちは、お客様の製品体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルを用意しています。

Loading Comments...