Darkside(https対応しました) |
2021年9月3日(金) 22:27
SPIが使えるかどうか確認するために、まずループバックテストしてみる。19番ピンと21番ピンを短絡させて準備。
だが、テストプログラムを動かすとエラーが続出。一部は、python2 ではなくpython3 をデフォルトにしたのが影響しているようだ。だが、それだけではない。何とかエラーを殺したところ、import spidev が失敗した。あ、入れてなかったのか。
py-spidev をインストールし、再び実行。すると今度は、spi.open() が失敗した。USBカメラの接続試験で cam.read() が失敗したときと同種の、嫌な汗が流れる。
もしやと思って ls /dev/ したら、どこにもSPIが無い。SPIがデバイスとして存在していないので、そりゃあ spi.open できる訳がない。
慌てて Jetson-IO を実行すると、SPIはしっかり有効になっている。
念のため、SPIが有効になっているかどうかを以前の方法でも調べる。
すると、やはり有効になっていることが確認できた。
となると、明らかにSPIは有効になっているのに、なぜ /dev/spi が存在しないのか?という問題になる。
ここで、Jetson-IO が登場する以前にSPIを有効化するため参考にしたサイトを、改めて覗いてみる。すると、SPIが有効になったことを確認後、SPI用のカーネルモジュールが存在するかどうか確認している。同じように modinfo spidev を実行すると、存在することが確認できた。その次に、デバイスツリーの再構築だ。
このデバイスツリーの再構築は Jetson Nano 単独では実行できず、リナックスが入っている母艦PCを別に用意しなくてはならない。たかがSPIを有効にするだけのために酷過ぎるということで、Jetson-IO が登場したと思っていた。
だが下手すると、SPIを有効にすることが Jetson-IO だけで可能でも、/dev/spi を有効にするにはデバイスツリーの再構築が相変わらず必要だったりして・・・それじゃ意味ね〜よ!
先日マルチブート環境を作って ubuntu 母艦PCがいつでも使えるようになっているので、面倒だがデバイスツリーの再構築を実行してみる。既にSPIは有効になっているのに大丈夫か不安だったが、結果は膨大な警告を出した挙げ句に終了。
ls /dev/ してもSPIは出現していないので、失敗したと断ぜざるを得ない。
Jetson Nano の環境設定では壮絶な死闘を強いられて来たので、もう嫌だ。SPIは使用せず、パラレル3ビット送信で済ませることにする。
written by higashino [Sタンク 1/16] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]
Generated by MySketch GE 1.4.1
Remodelling origin is MySketch 2.7.4