gpio制御
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| gpio制御 [2021/12/09 13:10] – 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の存在を知った。 | + | |
| - | ただし、[[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制御.1639023012.txt.gz · 最終更新: 2021/12/09 13:10 by makotoa67