H8S 2144 20MHz で SDカードのリード速度
試作FDDエミュレーターの動作を早くする為に、SDカードのアクセスに H8S 内蔵のシリアルインターフェース (SCI) を使いたくてマニュアルを良く読んだんだけど、H8S 2144 の SCI のクロック同期モードはタイミングの変更ができないのと、内部クロックでは 1バイトごとの受信ができないので、SDカードのSPIモードでのアクセスには使用できないみたい。
I/Oポート (GPIO) をソフトウェアで操作したシリアル通信でSDカードから 10240 バイト読みだした場合の速度はこんな感じ。
2HD のフロッピーディスクの転送速度は、クロックピットを入れると 1000kbps = 125kbyte/s なので、H8S でもハードウェアのシリアルI/Fが使えればバッファに蓄えずSDカードからデータを読んで直接 FD の READ DATA 信号を送出しても間に合いそうな感じ。
だいたい動きそうな様子になってきたので、SPIが使えるマイコンで作り直そうと思う。
その前に、使用するイメージファイルを D88 から独自形式に変更してから、なぜだか 2HD は読めるのに 2D が読めなくなってしまったので原因を調べなきゃ。
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 が読めなくなってしまったので原因を調べなきゃ。