gpio制御
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
gpio制御 [2021/12/09 12:04] – admin | gpio制御 [2021/12/10 13:14] (現在) – makotoa67 | ||
---|---|---|---|
行 1: | 行 1: | ||
===== GPIO制御 ===== | ===== GPIO制御 ===== | ||
- | sysfs経由のGPIO制御だと応答速度が遅い。 | + | とあるイメージセンサを用いた撮像部を作ることになった。 |
+ | イメージセンサの撮像開始をGPIO入力でタイミングを取る必要があった。 | ||
+ | sysfs経由のGPIO制御だと応答速度が遅い。また、PythonのライブラリJetson.GPIOはよくみかけた。 | ||
プロジェクトの要求仕様的に、その遅い応答速度では満足できなかった。 | プロジェクトの要求仕様的に、その遅い応答速度では満足できなかった。 | ||
本当は、 | 本当は、 | ||
行 9: | 行 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対応を検討した。 | ||
- | mmapでGPIOレジスタのアドレスの近辺の値の変化を観測しつつ、gpio-tegra186.cも読んで大体把握。 | + | Jetson Nanoでは、Tegra X1のTRMで確認できたGPIOレジスタの詳細情報が、Xavier NXでは見つからず。 |
- | 大体把握できたあたりで、たまたま、libgpiodの存在を知った。 | + | |
- | ただし、Qiitaにlibgpiodの使い方を書いている人がいたので二番煎じになったので、経緯を含めて紹介してみる。経緯に興味は持たれないかもしれないが。 | + | 結局、「シェルで/ |
+ | |||
+ | たまたま、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、Xavier NXは15usec前後、Raspberry Pi4では5~10usec、というところ。 | + | ざっくりとした応答時間を計測してみたので、以下に紹介する。 |
+ | |||
+ | * Nanoは**3~7usec** | ||
+ | * Xavier NXは**15usec**前後 | ||
+ | * Raspberry Pi4では**5~10usec** | ||
+ | |||
+ | というところ。 | ||
+ | |||
+ | ちなみに、この時間は、トリガとなる入力ポートの変化から、それを検知して他のポートの出力ポートに出力するまでの時間をオシロで計測した時間。 | ||
この計測をした際に、特に、他のプロセスを動かしていたわけではないが、何か動いていたかもしれないので、参考値ということで。 | この計測をした際に、特に、他のプロセスを動かしていたわけではないが、何か動いていたかもしれないので、参考値ということで。 |
gpio制御.txt · 最終更新: 2021/12/10 13:14 by makotoa67