gpio制御
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
gpio制御 [2021/12/09 13:08] – makotoa67 | gpio制御 [2021/12/10 13:14] (現在) – makotoa67 | ||
---|---|---|---|
行 11: | 行 11: | ||
などもすべて自作のGPIO制御部にて実施したかったが、GPIO系の制御レジスタの制御のみでは駄目で(仕様としてはできそうだったのだが)、結局、sysfsの助けを借りて、初期化時はsysfsを用いてポートの初期化を行い、ポートの変化の箇所だけmmap経由でのGPIOレジスタReadとすることで応答速度を確保。 | などもすべて自作のGPIO制御部にて実施したかったが、GPIO系の制御レジスタの制御のみでは駄目で(仕様としてはできそうだったのだが)、結局、sysfsの助けを借りて、初期化時はsysfsを用いてポートの初期化を行い、ポートの変化の箇所だけmmap経由でのGPIOレジスタReadとすることで応答速度を確保。 | ||
+ | |||
今回、Jetson Xavier NXへのプロジェクト一式を移植する際に、GPIOポートの制御部分のXavier NX対応を検討した。 | 今回、Jetson Xavier NXへのプロジェクト一式を移植する際に、GPIOポートの制御部分のXavier NX対応を検討した。 | ||
- | Jetson Nanoでは、Tegra X1のTRMで確認できたGPIOレジスタの詳細情報が、Xavier NXでは見つからず。結局、 | + | Jetson Nanoでは、Tegra X1のTRMで確認できたGPIOレジスタの詳細情報が、Xavier NXでは見つからず。 |
- | 自分でmmapでGPIOレジスタのアドレスの近辺の値の変化を観測しつつ、gpio-tegra186.cも読んで大体把握。 | + | |
- | 大体把握できたあたりで、たまたま、libgpiodの存在を知った。 | + | |
- | ただし、Qiitaに[[libgpiodの使い方 | https:// | + | 結局、「シェルで/ |
+ | |||
+ | たまたま、libgpiodの存在を知った。 | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | __//我ながら、libgpiodにたどり着くの、遅い。 | ||
+ | 振り返ってみると、Jetson NanoでGPIOと格闘していたのは...2021年1月ごろ。そのときにはlibgpiodの存在に気づきたかった。 | ||
+ | 結構試行錯誤したような記憶が。。。// | ||
+ | __ | ||
+ | |||
+ | なので、JetsonシリーズのGPIO制御ということでQiitaに投稿([[https:// | ||
また、Jetson NanoとJetson Xavier NXだけでなく、Raspberry Pi 4でも動作確認を取ることで、ポータビリティも確認できた。 | また、Jetson NanoとJetson Xavier NXだけでなく、Raspberry Pi 4でも動作確認を取ることで、ポータビリティも確認できた。 | ||
ざっくりとした応答時間を計測してみたので、以下に紹介する。 | ざっくりとした応答時間を計測してみたので、以下に紹介する。 | ||
- | * Nanoは3~7usec | + | * Nanoは**3~7usec** |
- | * Xavier NXは15usec前後 | + | * Xavier NXは**15usec**前後 |
- | * Raspberry Pi4では5~10usec | + | * Raspberry Pi4では**5~10usec** |
というところ。 | というところ。 | ||
+ | |||
+ | ちなみに、この時間は、トリガとなる入力ポートの変化から、それを検知して他のポートの出力ポートに出力するまでの時間をオシロで計測した時間。 | ||
+ | |||
この計測をした際に、特に、他のプロセスを動かしていたわけではないが、何か動いていたかもしれないので、参考値ということで。 | この計測をした際に、特に、他のプロセスを動かしていたわけではないが、何か動いていたかもしれないので、参考値ということで。 |
gpio制御.txt · 最終更新: 2021/12/10 13:14 by makotoa67