接続変更によるSPI1の使用可否について

はじめまして
CANDY Pi Lite +Dを使用させて頂いています。
現在、Raspberry Pi 3Bおよび4BにRaspbianを入れ、CANDY Pi Lite +Dをスタックして使用していたのですが、SPI接続のCANモジュールを2つ接続する必要が出てきたため調べてみたところ、すでに同一のGPIOピンをCANDY Piが使用しているためSPI1が使用できないことが分かりました。
ちょうどスタック使用だと高くなり過ぎていたため、フラットケーブルでの接続に変更しようとしていたので、それであれば、接続ピンを変更することでSPI1との重複を避けることが出来るのではないかと考えました。
そこで、質問なのですが、GPIO20、21に接続されているReset、IRQを別のピンに接続した場合、CANDY Piのドライバにピン変更を指定することは可能でしょうか。まだ、どのピンに接続するかは未定のため、このピンであれば可能ということであれば、ご指示に従いたいと思います。可否について、可能であれば接続方法およびドライバへの指定方法について、ご教授願えればと思います。
ご対応をよろしくお願いいたします。

ご質問ありがとうございます。

大変申し訳ございません。現状ですとCANDY Pi Lite上の物理的な接続を変更しないとRaspberryPiでのSPI1のご利用は出来ない状態となっております。
具体的には、GPIO20とGPIO21は基板の配線上でそれぞれ物理的にモジュールやICに繋がっています。このため、Linux側(関連ドライバーの設定)を変更しても残念ながらその先のモジュール等に信号が伝達できない状態となります。

こちらでは試したことはないので詳細を申し上げられないのですが、例えばFT232HのようなUSB/SPI変換ボードなどでSPIポートを追加する方法もご検討いただければと思います。
よろしくお願いいたします。

早速ご回答頂きありがとうございます。
こちらの質問が上手く伝わっていなかったようで大変申し訳ございません。
CANDY Pi Lite上の40ピンヘッダからの基板上の配線を変更するのは不可能であることは承知しております。これまでのようにスタックして使用する場合は、物理的な接続位置を変更することも出来ないため諦めていたのですが、例えば、スタック接続から結線による接続に変更した場合、CANDY Pi LiteのGPIO20、21に相当する38番ピン、40番ピンに、Raspberry Piの別のピンを接続することが出来るのではないかと考えた次第です。これにより、物理的な接続を変更することが出来ると思うのですが、Linux側(関連ドライバーの設定)を変更しないと、その変更を反映することが出来ないため、質問させて頂いたということです。ドライバー内部でGPIO20、21を使用することを指定してあり、設定による変更が不可能であれば致し方ないとは思いますが、もし設定で変更することが可能であれば、教えて頂ければと考えた次第です。
実はこれまでUSB接続のCANを使用していたのですが、複数回の信号変換を行っているためか速度的な問題が出てきており、直接SPI接続したCANの方が仕様を満たすことを確認しております。FT232Hを経由した接続にした場合、USB接続CANを使用した時と同様の問題が発生することを危惧しております。出来ればCANDY Pi Liteを使用したLTEと、SPI接続のCANを併用したく考えております。
重ねてご対応をよろしくお願いいたします。

ご説明ありがとうございます。

つまり、ラズパイとCANDY Pi LiteのGPIOを直接接続させるのではなくて、別の方法でそれぞれのボードピンの対応を変更してしまおうというアイデアですね。
そうであれば、確かに基板上の配線の制約はなくなります。

そうしますと、GPIO20とGPIO21でそれぞれ以下の対応が必要です。

  • GPIO20(RESET)変更時 ・・・ /opt/candy-line/candy-pi-lite/_pin_settings.shの28行目付近にて、PERSTの設定値(初期値は20)を変更してください。
  • GPIO21(IRQ)変更時・・・こちらからsc16is752-spi0-ce1.dtsをダウンロードして、IRQのピンの設定行でピンの番号(初期値は21)を変更してください。その後dtsファイルをdtcでコンパイル(例えば、dtc -@ -I dts -O dtb -o sc16is752-spi0-ce1.dtbo sc16is752-spi0-ce1.dts)して、作成したdtboファイルを/boot/overlays/sc16is752-spi0-ce1.dtboにある既存のものと置き換えてから再起動してください。

dtsのコンパイルやデバイスツリーの説明については、Linuxやラズパイ側の詳細になるので、Web上でラズパイサイトのデバイスツリーの説明のほか各種サイトの説明を見ていただければと思います。

よろしくお願いいたします。

ご対応頂きありがとうございます。
これでCANDY Pi LiteとSPI接続CANを同時に使用できそうです。
これから教えて頂いた方法で試して、ここに結果と纏めを報告させて頂こうと思います。

1 Like