2017 07123456789101112131415161718192021222324252627282930312017 09












FC フラッシュカートリッジ専用 TSOP-DIP変換アダプタ MMC5版 

別バージョンのTSOP-DIP変換基板 → ファミコン フラッシュカートリッジ専用 TSOP-DIP変換アダプタ 

ピンアサインが違うためMMC5には対応していませんでしたが、今回はMMC5版を作成しました。
SNESのカセットのピンアサインにも対応しているので、SFCのカセットも作成できるかと思います(未検証)
FC_TSOPDIP_MMC5_04.jpg 
秋月で販売されている 
MX29F040TC 等を使って、フラッシュカートリッジを作成しやすくする為に極力配線をしないでいいように作成したMMC5用のTSOP-DIP変換アダプタです。
対応FlashROMは4Mbit MX29F040TC , 8Mbit AM29F080等 , 16Mbit AM29F016等 , 32Mbit MBM29F033等です
MMC5はPRG , CHR とも最大8Mbitまで対応していますので、最大で 4in1カセットが作成可能です。
FC_TSOPDIP_MMC5_06.jpg   FC_TSOPDIP_MMC5_08.jpg   FC_TSOPDIP_MMC5_07.jpg 
基板は40pin対応ですが 48pinの29F016等も利用可能です(両端の8pinは未使用なため)
※MMC5で使用する場合はSNES用拡張部分は不要なので、PカッターやPCBカッターなどでカットしてください。

FC_TSOPDIP_MMC5_13.jpg
 
■家電のケンちゃんにて委託販売も行っていますのでよろしくお願いします
家電のケンちゃん

■MASKROMピンアサイン表(MMC5ピンアサイン参照)
MASKROM-PIN.png 

■基板の説明
C1 : 0.1uFのチップコンデンサを取り付けますが無くても大丈夫かも(パスコン)
/WE : エッジコネクタの 14pin(CPU R/W)又は47pin(PPU R/W)に配線
A20 : 16Mbit以上のFlashROMを使用する場合のA20のスイッチ配線箇所(ROMの切り替え 2in1や4in1 等に使用)
※スイッチ等を取り付けないで 8Mbitとして利用する場合はA20■-■でジャンパする
A21 : 32MbitのFlashRomを使用する場合のA21のスイッチ配線箇所(ROMの切り替え 4in1 等に使用)
※スイッチ等を取り付けないで 8Mbitとして利用する場合はA21■-■でジャンパする
FC_TSOPDIP_MMC5_05.jpg   FC_TSOPDIP_MMC5_03.jpg 

MMC5の作成は簡単で配線は2カ所のみ。ピンヘッダは細ピンヘッダ
をおすすめします。
特にNin1とかにしないのであれば16MbitであればA20をジャンパ、32MbitであればA20,A21をジャンパでショートします。
あとはPRG側の/WEは
エッジコネクタの14pin(CPU R/W)、CHR側の/WEは47pin(PPU R/W)に配線すれば完成です。
FC_TSOPDIP_MMC5_12.jpg   FC_TSOPDIP_MMC5_11.jpg   FC_TSOPDIP_MMC5_14.jpg   FC_TSOPDIP_MMC5_15.jpg 

kazzoで書き込みを行いうまく書き込みできれば完成。
※注意
標準の mmc5.af ではコマンドアドレス幅 A0-A14 のデバイス対応になっていると思うので、CHR側がうまく書き込めない場合は mmc5.af のコメントアウトされている部分(A0-A10デバイス対応箇所)を有効にしてください(137~155行)
こちらの説明も参照 → 
device_flashmemory
コマンドアドレス幅 A0-A10 デバイス対応のMMC5スクリプトを置いておきます(txtをafに変更) →
mmc5_A0-10.af

flashdevice.nut にデバイス追加も必要です。
主要なデバイスは下の【続きを読む】に記載してるので追加しておきましょう。


W-RAM-0を256KbitのSRAMへ変更すれば、MMC5すべてのゲームが書き込み対応可能となります。

MMC5のフラッシュカートリッジを作成するならETROM-xxの基板を使いましょう。
W-RAM-0へ256kbitのSRAMを取り付ける記事 →
MMC5 フラッシュカートリッジ作成
FC_TSOPDIP_MMC5_02.jpg  



flashdevice.nut に下記の記述が無い場合も追加をお願いします。

local mega = 0x20000;
local MASK_A14 = mask_get(14);
local MASK_A11 = mask_get(11);
local MASK_A10 = mask_get(10);


デバイスの追加記述
 
["MX29F080TC"] = {
capacity = 8 * mega, pagesize = 1,
erase_wait = 8000, erase_require = true,
retry = false,
id_manufacurer = 0xc2, id_device = 0xd5,
command_mask = MASK_A11
},
["MX29F080TC_2"] = {
capacity = 8 * mega, pagesize = 1,
erase_wait = 8000, erase_require = false,
retry = false,
id_manufacurer = 0xc2, id_device = 0xd5,
command_mask = MASK_A11
},
["AM29F016B"] = {
capacity = 16 * mega, pagesize = 1,
erase_wait = 8000, erase_require = true,
retry = false,
id_manufacurer = 0x01, id_device = 0xad,
command_mask = MASK_A11
},
["AM29F016B_2"] = {
capacity = 16 * mega, pagesize = 1,
erase_wait = 8000, erase_require = false,
retry = false,
id_manufacurer = 0x01, id_device = 0xad,
command_mask = MASK_A11
},
["MBM29F016A"] = {
capacity = 16 * mega, pagesize = 1,
erase_wait = 8000, erase_require = true,
retry = false,
id_manufacurer = 0x04, id_device = 0xad,
command_mask = MASK_A11
},
["MBM29F016A_2"] = {
capacity = 16 * mega, pagesize = 1,
erase_wait = 8000, erase_require = false,
retry = false,
id_manufacurer = 0x04, id_device = 0xad,
command_mask = MASK_A11
},
["MBM29F033C"] = {
capacity = 32 * mega, pagesize = 1,
erase_wait = 8000, erase_require = true,
retry = false,
id_manufacurer = 0x04, id_device = 0xd4,
command_mask = MASK_A11
},
["MBM29F033C_2"] = {
capacity = 32 * mega, pagesize = 1,
erase_wait = 8000, erase_require = false,
retry = false,
id_manufacurer = 0x04, id_device = 0xd4,
command_mask = MASK_A11
},
関連記事
ACR WEB ブログランキング参加してます

コメントの投稿














管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://bakutendo.blog87.fc2.com/tb.php/310-6e345a7a