BitBangModeの性能

BitBangModeの癖を掴むべく,パルス出力の実験を行ないました.参考にしたwebページはここ.

実験の結果,なかなか気難しいことがわかりました. 厳密なタイミングを要求されるアプリには全く使えないでしょう.しかし,後述しますが,応用の可能性は非常に広いものです.

FT_SetBaudRate()で115200を指定し,5パルス出力.

左図と同じ条件.必ず同じ波形が出るとは限らない.

出力波形は毎回違う.

頻度は低いが,このような信号も出る.time/divが他の画像と違うことに注意.

FT_SetBaudRate()で3000000を設定し,5発のパルスを発生.baudrateの値を大きくすると,内部のデータ送出処理速度の上限に引っかかるらしく,ビットごとの信号タイミングの乱れが観測されなくなる.
1データ送るのに必要な時間は420nsec.データ転送レートは2.4MByte/sec.ただこの転送レートはバースト的なもの.

baudrate=3000000で10kbyteのデータを送るのにかかった時間を観測.要素数10000のbyte配列を用意し, はじめから1/4までを0xffに,1/4から3/4までを0x00,3/4から最後の一つ前までを0xff,最後を0x00で埋めたデータを送信.送信レートは543kbyte/sec.

一回の送信データサイズをFT245RL内蔵のバッファサイズである128に収めると,安定して1Mbyte/secの転送レートを得ることができる.

一回の送信データサイズを129にした場合.1バイト増えただけだが,送信時間は大幅に伸びている.

測定に使ったC#アプリはこちら.


Designed by chocoto
inserted by FC2 system