2015年1月8日木曜日

H8S 2144 20MHz で SDカードのリード速度

試作FDDエミュレーターの動作を早くする為に、SDカードのアクセスに H8S 内蔵のシリアルインターフェース (SCI) を使いたくてマニュアルを良く読んだんだけど、H8S 2144 の SCI のクロック同期モードはタイミングの変更ができないのと、内部クロックでは 1バイトごとの受信ができないので、SDカードのSPIモードでのアクセスには使用できないみたい。
I/Oポート (GPIO) をソフトウェアで操作したシリアル通信でSDカードから 10240 バイト読みだした場合の速度はこんな感じ。

mount time : 22 ms
10240 byte read
   1 byte block : 352 ms   29 kbyte/s
 512 byte block : 107 ms   95 kbyte/s
1024 byte block : 106 ms   96 kbyte/s
2048 byte block : 103 ms   99 kbyte/s
close : 0 ms

2HD のフロッピーディスクの転送速度は、クロックピットを入れると 1000kbps = 125kbyte/s なので、H8S でもハードウェアのシリアルI/Fが使えればバッファに蓄えずSDカードからデータを読んで直接 FD の READ DATA 信号を送出しても間に合いそうな感じ。
だいたい動きそうな様子になってきたので、SPIが使えるマイコンで作り直そうと思う。

その前に、使用するイメージファイルを D88 から独自形式に変更してから、なぜだか 2HD は読めるのに 2D が読めなくなってしまったので原因を調べなきゃ。