HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2019/05/01

NVIDIA Jetson Nanoの GPIO端子の I2C機能を使う方法 NVIDIA Jetson Nanoの GPIO端子の I2C機能を使う方法

(NVIDIA Jetson Nanoの GPIO端子の I2Cに各種センサーを繋げる方法まとめ)

Tags: [Raspberry Pi], [電子工作], [ディープラーニング]




● NVIDIA Jetson Nanoで I2Cを使う方法

Jetson Nano GPIO table
 please see this post from JetsonHacks

NVIDIA Jetson Nano J41 Header GPIO Pin layout

 Interface signal pins.
 All signals use 3.3V levels.
 By default, all interface signal pins are configured as GPIOs,
 except pins 3 and 5 and pins 27 and 28, which are I2C SDA and SCL,
 and pins 8 and 10, which are UART TX and RX.
 L4T provides a Python library, Jetson.GPIO, for controlling GPIOs.

 The library has the same API as RPi.GPIO.
 See
/opt/nvidia/jetson-gpio/doc/README.txt
 on your Jetson system for details.

 以下のピンは最初から I2Cや UART機能が有効になっています。
 (つまり、GPIOとして使えない)
 Pin 3 Pin 5 = I2C Bus 1
 Pin 27 Pin 28 = I2C Bus 0
 Pin 8 Pin 10 = UART TX and RX, Pin 8 = TXD0, Pin 10 = RXD0

 NVIDIA Jetson Nanoの GPIOには内蔵プルアップ・内蔵プルダウンの指定が有りません。
 なので外部回路側にプルアップ抵抗が必要です。

 電源ピン +3.3V, +5V, GNDの配置は同じ。
 GPIOの各種機能ピンの配置も同じ。I2C、SPI、UART、I2S、PWM等
 一部の GPIOが Jetson Nano独自、Raspberry Pi独自となっている。
 (下記の表で背景が白色の所が不一致と Pin 11、Pin 36)

・NVIDIA Jetson Nano J41 Header GPIO Pin layout
NVIDIA Jetson Nano J41 Header GPIO Pin layout




● Jetson Nanoの I2C

 $ sudo i2cdetect -y 1で I2Cに接続している周辺機器(センサー)を確認する
 ※ ZS-042 DS3231の RTCモジュールを接続していると 0x57と 0x68に検出している事が分かる
 0x57は AT24C32の 4KB不揮発メモリ
 0x68は RTC DS3231のリアルタイムクロック
 0x4fは LM75Aの温度センサ

 ※ ちなみに秋月の I2C接続キャラクタ液晶 AQM1602Aは I2Cデバイスとして認識しませんでした。やっぱり秋月の I2C LCDモジュール ST7032はクセが有るなあ。

user@user-desktop:~$ sudo i2cdetect -r -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 4f
50: -- -- -- -- -- -- -- 57 -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

# 0x4fは LM75Aの温度センサ
user@user-desktop:~$ i2cget -y 1 0x4f 0x00
Error: Could not open file `/dev/i2c-1': Permission denied
Run as root?
user@user-desktop:~$ sudo i2cget -y 1 0x4f 0x00
0x1a
user@user-desktop:~$ sudo i2cget -y 1 0x4f 0x01
0x00
user@user-desktop:~$ sudo i2cget -y 1 0x4f 0x02
0x4b
user@user-desktop:~$ sudo i2cget -y 1 0x4f 0x03
0x50
user@user-desktop:~$ sudo i2cget -y 1 0x4f 0x07
0xa1

user@user-desktop:~$ sudo i2cdump -y 1 0x4f
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
10: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
20: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
30: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
40: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
50: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
60: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
70: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
80: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
90: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
a0: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
b0: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
c0: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
d0: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
e0: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?
f0: 1a 00 4b 50 ff ff ff a1 1a 00 4b 50 ff ff ff a1    ?.KP...??.KP...?

# 0x68は RTC DS3231のリアルタイムクロック
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x21
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x22
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x23
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x25
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x26
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x01
0x19
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x02
0x10
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x03
0x05

user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x58
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x59
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x00
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x01
user@user-desktop:~$ sudo i2cget -y 1 0x68 0x00
0x02

user@user-desktop:~$ sudo i2cdump -y 1 0x68
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 23 28 10 05 02 85 19 00 00 00 03 00 00 08 1c 8b    #(?????...?..???
10: 00 19 c0 XX XX XX XX XX XX XX XX XX XX XX XX XX    .??XXXXXXXXXXXXX
20: XX XX XX XX XX XX XX XX XX XX XX XX c0 c0 c0 c0    XXXXXXXXXXXX????
30: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
40: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
50: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
60: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
70: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
80: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
90: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
a0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
b0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
c0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
d0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
e0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX
f0: XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX    XXXXXXXXXXXXXXXX

# 0x57は AT24C32の 4KB不揮発メモリ
user@user-desktop:~$ sudo i2cdump -y 1 0x57 i
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................

user@user-desktop:~$ sudo i2cdump -y -r 0x00-0xFF 1 0x57
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
10: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
20: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
30: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................

・NVIDIA Jetson Nanoで I2Cを使う方法
NVIDIA Jetson Nanoで I2Cを使う方法


・NVIDIA Jetson Nanoで I2Cを使う方法
NVIDIA Jetson Nanoで I2Cを使う方法





Tags: [Raspberry Pi], [電子工作], [ディープラーニング]

●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)

【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト
【2020年版】NVIDIA Jetson Nano、Jetson Xavier NXの便利スクリプト

  Jetsonの面倒な初期設定やミドルウェアのインストールを bashスクリプトの実行だけで簡単にできます

NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM
NVIDIA Jetson Nano 開発者キットを買ってみた。メモリ容量 4GB LPDDR4 RAM

  Jetson Nanoで TensorFlow PyTorch Caffe/Caffe2 Keras MXNet等を GPUパワーで超高速で動かす!

NVIDIA Jetson Nano 開発者キットを Raspberry Pi 3と性能比較してみたベンチマークレビュー
NVIDIA Jetson Nano 開発者キットを Raspberry Pi 3と性能比較してみたベンチマークレビュー

  Jetson Nanoの GPUパワーを実感して Raspberry Pi 3との置き換えは可能かを検証する

NVIDIA Jetson Nano 開発者キットを動かすのに最低限必要な物の一覧、冷却ファン、NGFF 無線カード
NVIDIA Jetson Nano 開発者キットを動かすのに最低限必要な物の一覧、冷却ファン、NGFF 無線カード

  Jetson Nano 開発者キットに最低限必要な物、UHS-1 microSDカード、USBキーボード、電源、HDMIディスプレイ

NVIDIA Jetson Nano 開発者キットで使用する microSDカードに Ubuntu OSイメージを焼く方法を説明
NVIDIA Jetson Nano 開発者キットで使用する microSDカードに Ubuntu OSイメージを焼く方法を説明

  Jetson Nano 開発者キットを動かすのに必要な microSDカードを作成する方法(Windows、Mac)

NVIDIA Jetson Nano 開発者キットで SDカードで起動したら一番最初にする事
NVIDIA Jetson Nano 開発者キットで SDカードで起動したら一番最初にする事

  ログイン操作後に各種の初期設定やパッケージのアップデートをすると良いです

NVIDIA Jetson Nano Ubuntuのパッケージがアップデート可能な場合にアップデートする方法
NVIDIA Jetson Nano Ubuntuのパッケージがアップデート可能な場合にアップデートする方法

  Ubuntuのパッケージを更新して packages can be updatedを 0にする方法

NVIDIA Jetson Nanoで nvcc command not found build CUDA app Errorの対応方法
NVIDIA Jetson Nanoで nvcc command not found build CUDA app Errorの対応方法

  Jetson Nanoで CUDAを使用したアプリをビルドする時に command nvcc not foundが出る場合の対処方法

NVIDIA Jetson Nanoの GUI環境を無効にして CUI環境で動く様にしてフリーメモリエリアを広げる
NVIDIA Jetson Nanoの GUI環境を無効にして CUI環境で動く様にしてフリーメモリエリアを広げる

  Ubuntuの X Window Systemを無効にして Jetson Nanoの使用できるメモリ容量を 300MB増やす方法

NVIDIA Jetson Nano 開発者キットの Tips一覧、冷却ファンが動かない、20Wモードで動かす、動作温度を知る、他
NVIDIA Jetson Nano 開発者キットの Tips一覧、冷却ファンが動かない、20Wモードで動かす、動作温度を知る、他

  Jetson Nanoで初心者が戸惑いそうな所を Tipsとしてまとめました nvcc not found

NVIDIA Jetson Nano 開発者キットに Raspberry Pi Camera Module V2 RaspiCamを接続する方法
NVIDIA Jetson Nano 開発者キットに Raspberry Pi Camera Module V2 RaspiCamを接続する方法

  Jetson Nanoは Raspberry Pi Camera Module V2の IMX219 800万画素カメラモジュールを接続できます

Raspberry Piで TensorFlow Deep Learning Frameworkを自己ビルドする方法
Raspberry Piで TensorFlow Deep Learning Frameworkを自己ビルドする方法

  ラズパイで TensorFlow Deep Learning Frameworkを自己ビルドする方法

Raspberry Piに PyTorch Deep Learning Frameworkをソースコードからビルドする方法、DeepDreamでキモイ絵を作成
Raspberry Piに PyTorch Deep Learning Frameworkをソースコードからビルドする方法、DeepDreamでキモイ絵を作成

  ラズパイで PyTorch Torch Deep Learning Frameworkをビルドして Deep Dreamで悪夢を見る方法

Raspberry Piで darkflowを動かしてリアルタイムでカメラ映像を画像物体検出する方法
Raspberry Piで darkflowを動かしてリアルタイムでカメラ映像を画像物体検出する方法

  ラズパイで darkflowと Tensorflowを動かしてリアルタイムでカメラ映像の物体検出を行なってみる

Raspberry Piで Caffe Deep Learning Frameworkで物体認識を行なってみるテスト
Raspberry Piで Caffe Deep Learning Frameworkで物体認識を行なってみるテスト

  ラズパイで Caffe Deep Learning Frameworkを動かして物体認識を行なってみる

Raspberry Piで Deep Learningフレームワーク Chainerをインストールしてみる
Raspberry Piで Deep Learningフレームワーク Chainerをインストールしてみる

  ラズパイに Deep Learningのフレームワーク Chainerを入れてみた

Raspberry Piで DeepBeliefSDKをビルドして画像認識フレームワークを動かす方法
Raspberry Piで DeepBeliefSDKをビルドして画像認識フレームワークを動かす方法

  ラズパイに DeepBeliefSDKを入れて画像の物体認識を行なう

【成功版】最新版の Darknetに digitalbrain79版の Darknet with NNPACKの NNPACK処理を適用する
【成功版】最新版の Darknetに digitalbrain79版の Darknet with NNPACKの NNPACK処理を適用する

  ラズパイで NNPACK対応の最新版の Darknetを動かして超高速で物体検出や DeepDreamの悪夢を見る

【成功版】Raspberry Piで Darknet Neural Network Frameworkをビルドする方法
【成功版】Raspberry Piで Darknet Neural Network Frameworkをビルドする方法

  ラズパイに Darknet Neural Network Frameworkを入れて物体検出や悪夢のグロ画像を生成する

【成功版】Raspberry Piに TensorFlow Deep Learning Frameworkをインストールする方法
【成功版】Raspberry Piに TensorFlow Deep Learning Frameworkをインストールする方法

  ラズパイに TensorFlow Deep Learning Frameworkを入れて Google DeepDreamで悪夢を見る方法

Raspberry Piに Jupyter Notebookをインストールして拡張子 ipynb形式の IPythonを動かす
Raspberry Piに Jupyter Notebookをインストールして拡張子 ipynb形式の IPythonを動かす

  ラズパイに IPython Notebookをインストールして Google DeepDream dream.ipynbを動かす

Raspberry Piで Caffe2 Deep Learning Frameworkをソースコードからビルドする方法
Raspberry Piで Caffe2 Deep Learning Frameworkをソースコードからビルドする方法

  ラズパイで Caffe 2 Deep Learning Frameworkをソースコードから自己ビルドする方法

【ビルド版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning Framework
【ビルド版】Raspberry Piで DeepDreamを動かしてキモイ絵をモリモリ量産 Caffe Deep Learning Framework

  ラズパイで Caffe Deep Learning Frameworkをビルドして Deep Dreamを動かしてキモイ絵を生成する

Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法
Raspberry Pi 3 Model Bで動画処理アプリ FFmpegをコンパイルする方法

  ラズパイ3で動画音声変換処理プログラム FFmpegをセルフコンパイルしてインストールする方法

Raspberry Pi 3 Model Bで動画処理アプリ libavをコンパイルする方法
Raspberry Pi 3 Model Bで動画処理アプリ libavをコンパイルする方法

  ラズパイ3で libavをセルフコンパイルしてインストールする方法

Raspberry Piで NNPACKをビルドする方法
Raspberry Piで NNPACKをビルドする方法

  ラズパイで NNPACKをビルドしてみるテスト、ビルドするだけ

BLAS、ベクトルと行列に関する基本線型代数操作を実行する演算ライブラリ APIのまとめ
BLAS、ベクトルと行列に関する基本線型代数操作を実行する演算ライブラリ APIのまとめ

  BLAS(Basic Linear Algebra Subprograms)の線型代数演算ライブラリ APIのまとめ

Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ
Raspberry Pi 3の Linuxコンソール上で使用する各種コマンドまとめ

  ラズパイの Raspbian OSのコマンドラインで使用する便利コマンド、負荷試験や CPUシリアル番号の確認方法等も

PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利
PIP機能付きの 4K対応の 4入力 1出力の HDMIセレクターを買ってみた、HDMI機器が複数有る場合に便利

  ピクチャ イン ピクチャ機能付き 4K入力対応の 4入力 1出力 HDMI切り換え機 HDSFX0401P

EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強
EDID保持機能付きの 4K対応の 4入力 2出力の マトリックス切り替え HDMIセレクター、液晶画面 2台と使用で最強

  TESmart HMA0402A30 マトリックス切り替えで液晶画面 2台に接続できて更に EDID保持の便利機能付き HDMI切り換え機




[HOME] | [BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c) 2019 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator

http://www.neko.ne.jp/~freewing/raspberry_pi/nvidia_jetson_nano_gpio_i2c/