2011年3月25日金曜日

SDメモリカードプレイヤー機能の実装5

DE0などのTerasicのDevelopment and Education BoardのSDメモリカードのサンプルコードを流用ベースとして用いようと考えているため、ソースを追っていますが、SPIモードでは、クロックとマスタ=>ターゲットのデータラインと、ターゲット=>マスタのデータラインの3本とも双方向バスではないはずなのに、コマンドに対するレスポンスをコマンドを出力後、入力に切り替えて受信する処理になっていまして、何故なのか分からず悩んでいました。

結局、この資料を見つけ、SPIモードだとばかり思っていたら、SD Bus Modのコードであることに気がつきました。

SD Bus Modeといってもデータ転送を4パラで行うわけではなく、SPIと同様にデータ転送は1本のラインで行い、あとはクロックとコマンド/レスポンス用のラインの3本インタフェースのためSPIモードより転送能力がそれほど向上するとは思えません。ストリームアクセスコマンドというモードで転送すれば、帯域をかなり有効に使用できるためある程度期待できますが、結局シングルブロックアクセスモードを使っているようなので、そのままのコードではSPIモードとあまり変わらないのではないかと思われます。

このままMMCモードのソフトでいくか、SPIモードのソフトを別に探してくるか自力でつくるか悩ましいところですが、とりあえずはこのままMMCモードで進め、ハードをMMCモード用に調整する方向をデフォルトで進めようかと考えています。

3/31 MMCモードをSD Bus Modeに修正

0 件のコメント:

コメントを投稿