MMCを使ってみよう


Spartan2E版の似非PLDシステムで、Multi Media Card (MMC)を使用します。
正月休みを利用して、勉強がてらMSXにMMCを接続してみる実験をしてみました。


MSXにMMCアダプタを接続した様子

 

BIOS-ROMや、ゲームROM・DISKイメージを保持する。
ROM・DISKイメージデータは、Windowsマシンで容易に入れ替えたい。

 

1.汎用メモリカードなので、大容量の割に安価で、扱いやすい
  (I2CやSPIのROMチップ単体では、特殊な書き込みハードが必要)

2.シリアルI/Fなので、FPGAのI/Oピン消費が抑えられる
  (CompactFlash、SmartMediaに対して)

3.公開されている仕様の範囲で、ソフトウェア・ハードウェアの開発が可能
  (MemoryStick、SD-memoryに対して)

 

MSXのジョイスティックポートBに接続して使います。
とにかく安直なハードウェア、という目標なので、ハードウェアは至って簡易的です。

 

サンハヤトの基板についているコネクタは、MMC専用なのでSDメモリが挿入出来ません。
そこで、安直に5.25インチFDD用ケーブルを利用してSDメモリを接続してみました。
結果、MMCと同様にセクタの読み書きが出来ました。
「こんな事なら始めからサンハヤトの基板要らない!?」と思ったとか思わなかったとか。
コツとしては、深く差し込みすぎない事です。(下の写真参照)

 

MMCの読み書きの実験には、下のアーカイブ内のMMC_TEST.COMを使います。
アーカイブには、製作法やソースリストも一緒に入っています。

主な部品はサンハヤトのMMC基板、3端子レギュレータ(5Vから3.3Vを生成)、74HC14です。
部品点数も少なく、製作は簡単だと思います。1時間位?

MMC_TESTのダウンロード

 

似非RAMディスクのセクタリード・ライト部をMMC用に書き換えれば可能でしょう。
ただし、今回は実用というよりは勉強の為に作ってみただけなので、そこまではやりません。

そもそもハードウェアが簡易的なものなので、転送速度はあまり速くありません。(1kB/s程度?)

 

本当はジョイスティック端子直結でMMCを駆動する予定でしたが、バッファ(HC14)が必要となってしまいました。
プルアップ抵抗を470Ωなどかなり低くしてもtr/tfが50nsを切れず、動作が不安定だったのです。
MMCのCS、CLK、DIラインにHC14を入れたらあっさり動いてしまいました。
全てのラインに必要かどうかは調べていません。
後付けの突貫作業だったので、基板の裏側はとても汚くなってしまいました。

それと今回実験に使用したMSX本体(FS-A1GT)のジョイスティックポートで、妙な挙動を発見しました。
MSXは、PSGレジスタR#15のbit2/3でジョイスティックポートBのトリガA/B出力を設定出来ます。
bit2/3を同時に変化させれば、トリガA/Bが同時に変化する事が期待されます。
ところが実際には、トリガAの方がBよりも必ず600ns程度先に変化するのです。
MSXエンジン(T9769)を使用したMSXで共通なのかも知れません。

 

サンハヤト株式会社メモリカード用変換基板(CK-16)

MiyoさんMMCを使おう

さとうさんMMC/SDカードでコンフィグX1関連のページも熱いです)

日立製作所半導体グループMultiMediaCardユーザーズマニュアルHB28B128MM2データシート

MultiMediaCard Association (MMCA)

 


Copyright 2000-2003 ESE Artists' Factory all rights reserved.

tujikawa@hat.hi-ho.ne.jp

Return