[Armadillo:06886] Re: armadillo-420のCSPIでDMAする方法について

Masahiro Iino email@hidden
2011年 3月 14日 (月) 13:40:21 JST


飯野です。
ご返答ありがとうございます。

私も8byteづつに区切ってやってみましたが、8byte受信後次の受信に
入るまでに数ms使ってしまっています。
この間、SSは下がりっぱなしです。
つまり、先頭の8byteだけクロックが出た後、かなり長くSSが下がっていて
上がったあと次の8byteという動作です。
この長い区間が、ユーザプロセスへのコピー時間なのか、bitbanding等の
ドライバなのかはまだ良くわかっていません。

ーーー
以前、別なCPUで自分でSPIドライバを作った事がありますが、bitbangingと
いうのは知らずに作っていました。
今回のarmadilloの実装ではこれを使っているようですが、何で必要なのか
今ひとつ解らずにいます。
ーーー

以上のように、クロックを上げても、SSが下がったままクロックの出ない区間が
長すぎる為、意味がなさそうです。
SS区間を短く出来れば良いのですが、実装を追いきれていないのでどこがボトル
ネックなのか突き止め切れていません。

何か良い方法があればご教授下さい。

(2011/03/14 12:00), Takenoshita Koyo wrote:
> 竹之下です。
> 
>> SS信号は、スレーブ側で監視していて、途中でデアサートされればその間は
>> 送出を待っているので、途中で落ちても問題ありません。
>> 1024byteずつでもバースト出来ればかなり助かるのですが、現状のドライバは
>> その部分も実装されていないように見えます。
> 今の実装ですと、一回の転送で32bit×8=32byteしか送れないようになっています。
> 8byteを越すとエラーとなるというのは、bits_per_wordが8bitになっているため、
> 8bit×8=8byteとなっているのだと思います。(×8は、FIFOのサイズ)
> 
>> SPIデバイスはSTM32マイコンのSPIを使った自作物ですので、この辺りは
>> どうとでも出来るのですが、8byteづつだとスピードが間に合いそうになく、
>> どうにかDMA出来ないかと思い、質問させていただきました。
> 現在のドライバの実装だと、32bit以上の長さでバーストさせるとなると
> かなり修正が必要になりそうです。
> 
> どこがボトルネックになっているかでも変わると思いますが、単純に、転送速度を
> 上げるだけでは対応できないでしょうか?
> 

-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: smime.p7s
型:         application/pkcs7-signature
サイズ:     5515 バイト
説明:       S/MIME Cryptographic Signature
URL:        <http://lists.atmark-techno.com/pipermail/armadillo/attachments/20110314/44f6f598/attachment.bin>


armadillo メーリングリストの案内