Armadilloフォーラム

SPI通信 通信データ長の設定方法

momura

2017年12月18日 11時43分

お世話になります。大村と申します。
840mを使って、FPGAとSPIデータ通信を行いたいと考えております。
840mがマスターでよいのですが、データ長の設定がよく分かりません。
840mからは0バイト(クロックは出すがデータ受信のみ)もしくは1バイト送信とし、
FPGAから7バイト受信したいと考えております。
ioctl()関数を使えばよいだろうと想像はつくのですが、この使い方の詳しい解説は見当たらず、
本フォーラムにお力をお借りしたい所存です。
また、ioctl.hやspidev.hなどを見れば、少しは分かるのかとも思うのですが、
これらがどこにあるかも分からず、これらの置かれているフォルダ位置も
併せてご教示戴ければ幸いです。
なお、開発マニュアルに載っているMCP3204とのSPI通信は見よう見まねで
何とか成功しております。
ご教示よろしくお願い申し上げます。

コメント

at_ohsawa

2017年12月22日 15時14分

> 840mがマスターでよいのですが、データ長の設定がよく分かりません。
> 840mからは0バイト(クロックは出すがデータ受信のみ)もしくは1バイト送信とし、
> FPGAから7バイト受信したいと考えております。
linux-3.4-atのソースコード内のサンプルコード Documentation/spi/spidev_test.c の lenの設定等は参考になるでしょうか。

> また、ioctl.hやspidev.hなどを見れば、少しは分かるのかとも思うのですが、
> これらがどこにあるかも分からず、これらの置かれているフォルダ位置も
> 併せてご教示戴ければ幸いです。

linux-3.4-atの include/linux/spi/spidev.h や include/asm-generic/ioctl.h等が期待されているファイルでしょうか。

momura

2017年12月22日 15時51分

ありがとうございます。何となく理解できました。
自分は全二重通信できることが頭にありませんでした。
戴いた回答を参考にして試してみます。
御礼申し上げます。

> > 840mがマスターでよいのですが、データ長の設定がよく分かりません。
> > 840mからは0バイト(クロックは出すがデータ受信のみ)もしくは1バイト送信とし、
> > FPGAから7バイト受信したいと考えております。
> linux-3.4-atのソースコード内のサンプルコード Documentation/spi/spidev_test.c の lenの設定等は参考になるでしょうか。
>
> > また、ioctl.hやspidev.hなどを見れば、少しは分かるのかとも思うのですが、
> > これらがどこにあるかも分からず、これらの置かれているフォルダ位置も
> > 併せてご教示戴ければ幸いです。
>
> linux-3.4-atの include/linux/spi/spidev.h や include/asm-generic/ioctl.h等が期待されているファイルでしょうか。
>
>