Armadilloフォーラム

Armadillo420でのSPI通信について

morutakazuya

2015年8月24日 21時04分

お世話になっております。
もるた と申します。

Armadillo420のSPIを使用して、3台のスレーブから受信したデータを
LANで送信する通信を行いたいと検討しています。
通信速度としてスレーブ1台あたり3Mbps程度必要とし、
転送するデータサイズはストリームデータです。

仕様上だと最大16Mbpsまで対応ということですが、
実績など実際に確認されている速度がありましらお教えください。

UARTだと4Mbpsで通信可能なようなので、処理能力としては
可能ではないか思っているのですが、
SPIのドライバに問題があるような投稿もあったので
さらなるドライバ修正の必要性もでてくるのか、など情報がありましたらお願いします。

コメント

at_yuma.arakawa

2015年8月26日 16時40分

> 実績など実際に確認されている速度がありましらお教えください。
- マスター: Armadillo-420
- スレーブ: 3台、各3Mbpsほど
というご質問いただいた状況での実績はありません。

なお、以下ML投稿にあるMMC over SPIを使用した10Mbpsの動作を弊社でも確認したことがあります。
http://lists.atmark-techno.com/pipermail/armadillo/2013-July/009059.html

> SPIのドライバに問題があるような投稿もあったので
> さらなるドライバ修正の必要性もでてくるのか、など情報がありましたらお願いします。
現在、SPIドライバには以下の2点の問題があります。
1. 転送データサイズに8バイトより大きな値を指定できない
- 8バイトより大きいデータを扱う際は、8バイトずつ転送する必要があります
- 根本的な解決ではありませんが、以下のフォーラム回答のパッチで32バイトへ拡張できます
https://armadillo.atmark-techno.com/forum/armadillo/793
2. ioctrlでスレーブ毎に異なるSCK周波数を設定できない
- 最大SCK周波数(max_speed_hz)は常に arch/arm/mach-mx25/armadillo400.c の
armadillo400_spiN_board_info[] で指定した値となる