Armadilloフォーラム

Armadillo-440 SPI RDYピンの使用

k.sato

2021年4月9日 12時01分

お世話になります。
佐藤と申します。

Linuxカーネル: linux-2.6.26-at30

https://manual.atmark-techno.com/armadillo-guide/armadillo-guide-3_ja-2…
2.3. SPI接続A/Dコンバーターを参考にspidev3.0からデータを取得することは出来ました。

そこでCON9_14のRDYにADCのIRQを接続しH->Lをトリガに
データ取得をすることは可能でしょうか?

以上、よろしくお願い致します。

コメント

佐藤です。
返信ありがとうございます。

> https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_series_sof…
上記はGPIOの割り込みを使用してということでしょうか?

9.15. SPIのCON9のSPI3を有効にし
CON9_14をCSPI3_RDYが割り当てられていても使用できるのでしょうか?
ls /sys/class/gpio/
で確認してみたのですがCON9_14は存在しません。

何か間違っているのでしょうか?

at_akihito.irie

2021年4月13日 10時33分

入江です。

CSPI3を有効にした段階でCON9_14はドライバに渡ってしまうためsysfsにGPIO
ノードが出ないことを失念してしまい、説明不足でした。

簡単な対応方法としましては2通りあります。

ひとつは、可能であればRDYをCON9のGPIOになれる別なピンに配線してしまう
ことです。
これによって、先に紹介した情報を参考にすることでGPIO割り込みが入ると
SPIでデータを読み出す処理を実行するようにできます。

もうひとつは、配線を変更できない(したくない)場合に、RDYピンがドライバ
に渡らないようソースコードを修正する方法です。
ドライバに渡らないようにすることで、前述のGPIO割り込みが設定可能になり
ます。

1つ目の方法が取れるならばそちらの方が簡単ですが、いかがでしょうか。

佐藤です。

他でGPIOを使用しているのでこちらの方法を教えて頂けますか?

> もうひとつは、配線を変更できない(したくない)場合に、RDYピンがドライバ
> に渡らないようソースコードを修正する方法です。
> ドライバに渡らないようにすることで、前述のGPIO割り込みが設定可能になり
> ます。

at_akihito.irie

2021年4月13日 16時49分

入江です。

linux-2.6.26-at30に添付のspi3_rdy_gpio.patchを適用してください。

[ATDE ~/linux-2.6.26-at30]$ patch -p1 < spi3_rdy_gpio.patch 

その後、(既にされているとは思いますが)カーネルコンフィギュレーションで
SPI3を有効にしてビルドし、Armadilloに書き込んでください。

/sys/class/gpio/CON9_14があるはずです。

[armadillo]# ls /sys/class/gpio/CON9_14/
direction  edge       power/     subsystem@ uevent     value

あとは前述のGPIO割り込みで立ち下がりで割り込みが入るように設定し、割り
込みが入ったらSPIでデータを取得する処理を実行するようにすると良いと思
います。

ファイル ファイルの説明
spi3_rdy_gpio.patch

佐藤です。

対応ありがとうございます。

パッチを当てたところCON9_14が表示され、
GPIO割り込みでデータを取得できました。

ありがとうございました。