インターフェース使用方法

このwikiでは、J501キャリアボード上の様々なハードウェアとインターフェースについて、プロジェクトアイデアを拡張するための使用方法を紹介します。
GMSLカメラ
GMSL機能を有効にするには、J501キャリアボードとGMSL拡張ボードを組み合わせる必要があります。J501 GMSL拡張ボードは、NVIDIA® Jetson AGX Orin™と互換性のあるreServer Industrial J501キャリアボードに最大8台のGMSLカメラを接続するために設計されています。この拡張ボードはデシリアライザー「MAX96724」を使用しています。

対応カメラ
ハードウェア接続

- Step1. J501キャリアボードに銅製スタンドオフを取り付けます。
- Step2. GMSL拡張ボードをJ501キャリアボードに接続し、ネジで固定します。
- Step3. GMSLカメラを接続します。
使用方法
GMSL機能を有効にする前に、GMSL拡張ボードドライバーを含むJetPackバージョンがインストールされていることを確認してください。
Step1. jetsonデバイスのターミナルで、以下のコマンドを入力して、接続されたカメラが正しく認識されているかを確認します。
ls /dev/video*

ステップ2. ビデオインターフェース設定ツールをインストールします。
sudo apt install v4l-utils
Step3. Set the channel format for the serializer and deserializer.
media-ctl -d /dev/media0 --set-v4l2 '"ser_0_ch_0":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_1_ch_1":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_2_ch_2":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_3_ch_3":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_4_ch_0":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_5_ch_1":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_6_ch_2":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"ser_7_ch_3":1[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_0_ch_0":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_0_ch_1":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_0_ch_2":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_0_ch_3":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_0":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_1":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_2":0[fmt:YUYV8_1X16/1920x1536]'
media-ctl -d /dev/media0 --set-v4l2 '"des_1_ch_3":0[fmt:YUYV8_1X16/1920x1536]'
デバイスが再起動するたびに、シリアライザーとデシリアライザーのチャンネル形式を設定する必要があります。
Step4. 以下のコマンドを使用して、カメラを素早く起動し、ビデオストリームを表示するウィンドウを開くことができます。
gst-launch-1.0 v4l2src device=/dev/video0 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video1 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video2 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video3 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video4 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video5 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video6 ! xvimagesink -ev
gst-launch-1.0 v4l2src device=/dev/video7 ! xvimagesink -ev

ギガビットイーサネットコネクタ
J501には2つのイーサネットポートがあります。
- eth0: 10/100/1000Mbps仕様の標準ギガビットイーサネットポート。
- eth1: 10ギガビットイーサネットポート。

各イーサネットポートには2つのLED(緑と黄色)があります:
- 緑LED: 1000M/10Gネットワークに接続されている場合のみ点灯。
- 黄LED: ネットワークアクティビティステータスを表示。
SATAコネクタ
reServer J501キャリアボードは2x SATA 2.5" HDD/SSDをサポートし、SATAデータコネクタと電源コネクタの両方を備えています。以下のようにHDD/SSDを接続できます:

使用方法
Jetsonデバイスシステムが起動した後、lsblk
で接続されたSATAドライブを確認できます。

M.2 Key M
M.2 Key Mは高速ソリッドステートドライブ(SSD)用に設計されたインターフェースで、超高速データ転送速度を提供し、高性能アプリケーションに最適です。
サポートされているSSDは以下の通りです:
- 128GB NVMe M.2 PCle Gen3x4 2280 Internal SSD
- 256GB NVMe M.2 PCle Gen3x4 2280 Internal SSD
- 512GB NVMe M.2 PCle Gen3x4 2280 Internal SSD
- 1TB NVMe M.2 PCle Gen3x4 2280 Internal SSD
使用方法
Jetsonデバイスでターミナルを開き、以下のコマンドを入力してSSDの読み書き速度をテストします。
sudo dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync

テスト完了後は、sudo rm tempfile
コマンドを実行してキャッシュファイルを削除してください。
M.2 Key E
J501キャリアボードはM.2 Key Eインターフェースを搭載しており、これを通じてデバイスのBluetoothとWi-Fi機能を拡張できます。
Intel Dual Band Wireless-Ac 8265 w/Bluetooth 8265.NGWMGモジュールの使用を推奨します。
ハードウェア接続

使用方法
Wi-Fiモジュールを取り付けてデバイスの電源を入れた後、デバイスのWi-FiとBluetoothの設定を構成できます。

もちろん、以下のコマンドを使用してデバイスの動作状態を確認することもできます。
ifconfig

bluetoothctl

M.2 Key B
J501キャリアボードには、4Gおよび5GモジュールをサポートするM.2 Key Bコネクタが搭載されています。現在、SIM8202G-M2 5Gモジュールをテストしています。
ハードウェア接続

Mini PCIe
J501キャリアボードには、4GおよびLoRaモジュールをサポートするmini PCIeコネクタが搭載されています。ただし、4GモジュールまたはLoRaモジュールのいずれか一方のみを同時に接続できます。一部の4GモジュールにはGPS機能が組み込まれています。これについても説明します。
4Gモジュール
ハードウェア接続

-
ステップ1. 20ピンヘッダーのSIM_MUX_SELとGNDピンの間にジャンパーを追加します。
-
ステップ2. 4GモジュールをminiPCIeスロットにスライドして挿入し、ネジで固定します。
-
ステップ3. 4G対応のnano SIMカードをボード上のSIMカードスロットに挿入します。
SIMカードを取り外したい場合は、カードを押し込んで内部のスプリングを作動させると、SIMがスロットから出てきます
使用方法
ステップ1. minicomをインストールします:
sudo apt update
sudo apt install minicom -y
ステップ2. 接続された4Gモジュールのシリアルコンソールに入り、ATコマンドを入力して4Gモジュールと対話できるようにします:
sudo minicom -D /dev/ttyUSB2 -b 115200
Step3. Ctrl+Aを押してからEを押してローカルエコーをオンにします。
Step4. コマンド「AT」を入力してEnterを押します。「OK」という応答が表示されれば、4Gモジュールが正常に動作しています。

Step5. コマンド「ATI」を入力してモジュール情報を確認します。

DI/DO/CAN
J501キャリアボードは4つのデジタル入力と4つのデジタル出力チャンネルをサポートしており、すべて光学的に絶縁されているため、電圧スパイクやその他の電気的外乱からメインボードを効果的に保護します。この同じコネクタには2つのCANインターフェースもあり、これについてはこのwikiで後述します。

タイプ | ラベル名 | 回路図信号 | モジュールピン番号 | BGA番号 | GPIO番号 | V/A制限 |
---|---|---|---|---|---|---|
入力 | DI1 | DI_12V_1/DI_1_GPIO17 | A54 | PP.04 | 444 | 12V/ 合計20mA電流 |
DI2 | DI_12V_2/DI_2_GPIO18 | C55 | PQ.04 | 452 | ||
DI3 | DI_12V_3/DI_3_GPIO19 | K56 | PN.02 | 434 | ||
DI4 | DI_12V_4/DI_4_GPIO33 | C54 | PM.07 | 431 | ||
出力 | DO1 | DO_40V_1/DI_1_GPIO | E59 | PAA.04 | 320 | 40V/ピンあたり40mA負荷 |
DO2 | DO_40V_2/DI_2_GPIO | F59 | PAA.07 | 323 | ||
DO3 | DO_40V_3/DI_3_GPIO | B62 | PBB.01 | 325 | ||
DO4 | DO_40V_4/DI_4_GPIO | C61 | PBB.00 | 324 |
-
12Vデジタル入力、グランド信号はGND_DIに接続する必要があります。
-
デジタル出力、最大耐電圧40V、グランド信号はGND_DOに接続する必要があります。
-
標準差動信号を持つCANバス、グランド信号はGND_ISOに接続する必要があります。
DI接続概要
以下の図に従ってDIの接続を行うことができます。DI線に直列に抵抗を追加することをお勧めします。ここでは、DI1ピンに接続された4.7kΩ抵抗でテストしました。

DIの使用方法
入力として検出されるためには、DI線に12Vの電圧を入力する必要があります。
ステップ1. 上記のようにDI1ピンに接続を行い、12Vを入力します。
ステップ2. 以下のようにDI1のGPIOを開きます:
sudo su
cd /sys/class/gpio
echo 444 > export
cd PP.04
DI/DOピン割り当てテーブルを参照して、GPIO番号とBGA番号を確認できます。上記の例では、DI1ピンの場合、GPIO番号は444、BGA番号はPP.04です。
Step3. 以下を実行してステータスを確認します:
cat value
0を出力する場合は12V入力があることを意味します。1を出力する場合は入力電圧がないことを意味します。
DO の接続概要
以下の図に従ってDOの接続を行うことができます。DO線には直列に抵抗を追加することをお勧めします。ここでは4.7kΩ抵抗でテストしました。

DO の使用方法
ここでは上記の図に示すように負荷を接続する必要があります。これをテストする最も簡単な方法は、マルチメーターがあればそれを接続するか、または最大40V未満の電圧を必要とする負荷を接続することです。
ステップ1. 上記のようにDO1ピンに接続を行い、最大40Vを入力します。
ステップ2. 以下のようにD01のGPIOを開きます:
sudo su
cd /sys/class/gpio
echo 320 > export
cd PAA.04
echo out > direction
ステップ3. 以下を実行してピンをオンにします:
echo 1 > value
負荷がオンになっているか、マルチメーターが入力した電圧を出力している場合、テストは正常に機能しています。
CAN
J501キャリアボードは、5MbpsでCAN FD(Controller Area Network Flexible Data-Rate)プロトコルをサポートする2つのCANインターフェースを搭載しています。CANインターフェースは容量性絶縁を使用して絶縁されており、優れたEMI保護を提供し、産業および自動化アプリケーションにおいて信頼性の高い通信を確保します。120Ωの終端抵抗がデフォルトでインストールされており、GPIOを使用してこの抵抗をONおよびOFFに切り替えることができます。
CANインターフェースは絶縁電源を使用しているため、CANインターフェースに接続される外部デバイスのグランド信号はGND_ISOピンに接続する必要があります。
USB to CANアダプターとの接続概要
CANバスをテストしてインターフェースするには、以下に示すようにUSB to CANアダプターをボード上のCANコネクターに接続します:

ここでは、当社のBazaarで入手可能なUSB to CAN Analyzer AdapterとUSBケーブルを使用しています。
USB to CANアダプターでの使用方法
Step1. 使用しているUSB to CANアダプターのドライバーをメーカーのWebサイトからダウンロードしてインストールします。私たちの場合、使用したアダプターに応じて、ドライバーはこちらで見つけることができます。
Step2. 一部のアダプターには、CANデバイスと通信するためのPC用の必要なソフトウェアも付属しています。私たちの場合、使用したアダプターに応じて、こちらで見つけることができるソフトウェアをダウンロードしてインストールしました。
Step3. JetsonのCANインターフェースを初期化します。
Jetsonで**can_init.sh
**という名前の新しいファイルを作成し、以下の内容を記述します:
#!/bin/bash
sudo gpioset gpiochip2 9=0
sudo gpioset gpiochip2 8=0
sudo busybox devmem 0x0c303018 w 0xc458
sudo busybox devmem 0x0c303010 w 0xc400
sudo busybox devmem 0x0c303008 w 0xc458
sudo busybox devmem 0x0c303000 w 0xc400
sudo modprobe can
sudo modprobe can_raw
sudo modprobe mttcan
sudo ip link set can0 down
sudo ip link set can1 down
sudo ip link set can0 type can bitrate 125000
sudo ip link set can1 type can bitrate 125000
sudo ip link set can0 up
sudo ip link set can1 up
Then, run the file we just created in the Jetson terminal window:
sudo apt-get install gpiod
cd <path to can_init.sh>
sudo chmod +x can_init.sh
./can_init.sh
Step4. ターミナルでifconfigと入力すると、CANインターフェースが有効になっていることが確認できます。

Step5. 以前にインストールしたCANソフトウェアを開きます。この場合、使用しているCANアダプターに応じてインストールしたソフトウェアを開きます。

Step6. USB to CANアダプターをPCに接続し、Windowsの検索バーで検索してデバイスマネージャーを開きます。接続されたアダプターがポート (COM & LPT)の下に表示されます。ここに表示されているシリアルポートをメモしてください。下の画像によると、シリアルポートはCOM9です。

Step7. CANソフトウェアを開き、COMセクションの横にあるRefreshをクリックし、ドロップダウンメニューをクリックして接続されたアダプターに応じてシリアルポートを選択します。COM bpsはデフォルトのままにして、Openをクリックします。

Step8. ModeとCAN bpsはデフォルトのままにし、TypeをStandard frameに変更してSet and Startをクリックします。

Step9. reComputer Industrialで、以下のコマンドを実行してPCにCAN信号を送信します:
cansend can0 123#abcdabcd
ソフトウェアで受信した上記の信号が以下のように表示されます

ステップ10. reComputer Industrialで、以下のコマンドを実行してPCからのCAN信号の受信を待機します:
candump can0 &
Step11. CANソフトウェアで、Send a single frameをクリックします:

これで、以下のようにreComputer Industrialで受信されることが確認できます:

また、こちらを参照して、J501キャリアボードとreTerminal DMの間でCANを介した通信を確立することもできます。
USB
reServer J501キャリアボードには合計5つのUSBポートがあります:USB 3.1 Type-Aポート3つ、USB 3.1 Type-Cポート1つ、デバッグ用USB 2.0 Type-Cポート1つです。
使用方法
Jetsonターミナルでwatch -n 1 lsusb -tv
を入力してUSBポートを調べることができます。USBデバイスが接続されると、そのポートの詳細情報がここに表示されます。

さらに、M.2 Key Mを参照してUSBストレージデバイスの読み書き速度をテストすることができます。
テスト前に、cd
コマンドを使用してUSBストレージデバイスがマウントされているフォルダに移動してください。
RTC
J501キャリアボードはRTCインターフェースを搭載しており、システムの電源が切れている間でも正確な時刻を保持します。
接続方法
J501キャリアボードには、RTCバッテリーに接続する2つの異なる方法が装備されています。
- RTC socket
- JST socket
以下に示すように、3V CR1220コイン電池をボード上のRTCソケットに接続します。バッテリーの**プラス(+)**端子が上向きになるようにしてください。

以下に示すように、JSTコネクタ付きの3V CR2302コイン電池をボード上の2ピン 1.25mm JSTソケットに接続します

使用方法
Step1. 上記のようにRTCバッテリーを接続します。
Step2. J501の電源を入れます。
Step3. Ubuntuデスクトップで、右上角のドロップダウンメニューをクリックし、Settings > Date & Time
に移動し、イーサネットケーブルでネットワークに接続してAutomatic Date & Timeを選択し、日付/時刻を自動的に取得します。

イーサネット経由でインターネットに接続していない場合は、ここで日付/時刻を手動で設定できます。
Step4. ターミナルウィンドウを開き、以下のコマンドを実行してハードウェアクロック時刻を確認します:
sudo hwclock
以下のような出力が表示されますが、これは正しい日付/時刻ではありません:

Step5. 以下のコマンドを入力して、ハードウェアクロック時刻を現在のシステムクロック時刻に変更します:
sudo hwclock --systohc
Step6. インターネットから時刻を取得しないようにするため、接続されているイーサネットケーブルをすべて取り外し、ボードを再起動してください:
sudo reboot
Step7. ハードウェアクロック時刻を確認して、デバイスの電源がオフになっても日付/時刻が同じままであることを確認します。
次に、各起動時にハードウェアクロックからシステムクロックを常に同期するスクリプトを作成します。
Step8. お好みのテキストエディタを使用して新しいシェルスクリプトを作成します。ここではviテキストエディタを使用します
sudo vi /usr/bin/hwtosys.sh
ステップ9. iを押して挿入モードに入り、ファイル内に以下の内容をコピー&ペーストします:
#!/bin/bash
sudo hwclock --hctosys
Step10. Make the script executable.
sudo chmod +x /usr/bin/hwtosys.sh
ステップ11. systemdファイルを作成します:
sudo vim /lib/systemd/system/hwtosys.service
ステップ12. ファイル内に以下を追加します:
[Unit]
Description=Change system clock from hardware clock
[Service]
ExecStart=/usr/bin/hwtosys.sh
[Install]
WantedBy=multi-user.target
ステップ13. systemctlデーモンをリロードします:
sudo systemctl daemon-reload
ステップ14. 新しく作成したサービスを起動時に開始するように有効化し、サービスを開始します:
sudo systemctl enable hwtosys.service
sudo systemctl start hwtosys.service
ステップ15. スクリプトがsystemdサービスとして起動し、実行されていることを確認します:
sudo systemctl status hwtosys.service
Step16 ボードを再起動すると、システムクロックがハードウェアクロックと同期されていることが確認できます。
ファン
J501ボードのオンボードファンインターフェースは、nvfancontrolデーモンによって管理されており、Jetsonモジュールの動作状況に基づいてファン速度を適応的に調整します。設定ファイル /etc/nvfancontrol.conf
を通じてデーモンの動作モードを設定できます。
詳細については、こちらをご確認ください。
さらに、jtopツールを使用してファン速度を手動で設定することもできます。

HDMI
J501にはHDMI 2.1 Type Aポートが搭載されており、7680x4320の解像度をサポートしています。これにより、超高精細ビデオ出力が可能です。
技術サポート & 製品ディスカッション
弊社製品をお選びいただき、ありがとうございます!弊社製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供いたします。異なる好みやニーズに対応するため、複数のコミュニケーションチャンネルをご用意しています。