Armadilloフォーラム

SPI通信 通信データ長 最大値は?

momura

2018年3月9日 19時23分

お世話になります。大村と申します。
armadillo-840mを使ってアプリケーションをつくっております。
SPI通信を行なうのですが、spidev1.0を使います。
この条件にて、一度に送受信できるデータ長は制限があるでしょうか?
最大何バイトまで可能でしょうか?
ご教示をお願い致します。

コメント

at_kojiro.yamada

2018年3月14日 15時15分

4096byteが上限です。
これは、write()でもioctl(SPI_IOC_MESSAGE) でも同じです。

この値は、spidev driverが持つbufferのサイズというだけなので
メモリの許す限り増やせます。
# linux-3.4-at/drivers/spi/spidev.cのstatic unsigned bufsizですね。

bufsizは setenv で以下の起動オプションを設定することで変更可能です。(単位: byte)

spidev.bufsiz=<buffer_size>

momura

2018年3月14日 15時42分

回答ありがとうございます。
感謝申し上げます。
         大村

> 4096byteが上限です。
> これは、write()でもioctl(SPI_IOC_MESSAGE) でも同じです。
>
> この値は、spidev driverが持つbufferのサイズというだけなので
> メモリの許す限り増やせます。
> # linux-3.4-at/drivers/spi/spidev.cのstatic unsigned bufsizですね。
>
> bufsizは setenv で以下の起動オプションを設定することで変更可能です。(単位: byte)
>

> spidev.bufsiz=<buffer_size>
> 

>