回路図はほぼ完成しました。
ルールチェックも通過済みです。
次はフットプリントとクロック、リセット回路の
テスト環境を作るところです。
部品不足が発覚したのでまた注文しないと。。
回路図はほぼ完成しました。
ルールチェックも通過済みです。
次はフットプリントとクロック、リセット回路の
テスト環境を作るところです。
部品不足が発覚したのでまた注文しないと。。
今まで回路図を書いた経験もなく、
下手だなーと思いつつ書いています。
コーディングというより、縫い物をしている感覚です。
そういえばズボンの裾上げを数か月前にやったなあ・・・(どうでもいい。
74HCのデーターシートからそのままの取ってきたので
トップビューから見たピン配置のままです。
その為、非常に線が入り組んでいます。
直そうにもすべての石を作った後だったので
面倒なのでこのまま続行します。
エクステンション基盤を自作してみました。
初めてのkicad、業者注文でもあるので相当ショボイです。
hello wolrdみたいなもんだと思って見て頂ければと思います。
スイッチサイエンスPCB 10x10cm 5枚で2,469円。(1,389+送料1,080)
注文 2/6
到着 2/22
最初なので穴の大きさこれでよいの?と半信半疑でしたが
予想通りの結果満足しています。
GB吸出しは問題なくいけました。一発でOK。
前みたいにカードリッジピンに無理やりケーブルくっ付けてましたけど、
あれはものすごく大変でした。
配線ミスのリカバー、テスターの検査込みで3,4時間。
この基盤を使うなら1時間もかからなかったと思います。
どんな道具で作るかって大事ですね・・・。
kicadメモ M3ネジ NPTH 3.048mm サイズX 4.064 パッド スルーホール 1mm サイズX 1.6mm
大したことしていないのにケーブルが多いとやった感がでますね。(^^;
ROM部分は大雑把に実験完了。次々~。
追記:このソースは暫定版です。
/* IDE 物理ピン 名称 2 4 Intr 3 5 D0 4 6 D1 5 11 D2 6 12 D3 7 13 D4 8 14 D5 9 15 D6 10 16 D7 16 25 A0 17 26 A1 18 27 A2 19 28 A3 ※スケッチ書き込み用 - 1 RESET 11 17 MOSI 12 18 MISO 13 19 SCK */ const int _A0 = 16; const int _D0 = 3; void setup() { for(int i=0; i<4; i++) { pinMode(_A0+i, INPUT); } for(int i=0; i<8; i++) { pinMode(_D0+i, OUTPUT); digitalWrite(_D0+i, LOW); } attachInterrupt(0, intr, RISING); } void loop() { // EMPTY } void intr() { byte t = 0; byte d = 0; for(int i=0; i<4; i++) { if(digitalRead(_A0+i) == HIGH) { t |= (1 << i); } } // ラーメンタイマー switch(t) { case 0x00: d = B10110111; break; case 0x01: d = B00000001; break; case 0x02: d = B11100001; break; case 0x03: d = B00000001; break; case 0x04: d = B11100011; break; case 0x05: d = B10110110; break; case 0x06: d = B00000001; break; case 0x07: d = B11100110; break; case 0x08: d = B00000001; break; case 0x09: d = B11101000; break; case 0x0a: d = B10110000; break; case 0x0b: d = B10110100; break; case 0x0c: d = B00000001; break; case 0x0d: d = B11101010; break; case 0x0e: d = B10111000; break; case 0x0f: d = B11111111; break; } for(int i=0; i<8; i++) { digitalWrite(_D0+i, (d & (1 << i)) ? HIGH : LOW); } }
Arduino/Arduino UNOからATmega328P-PUを外して単体利用する - DIGIらいふ ~COOLに行こう!~
ATMEGA328P を Arduino として使う
参考に作ってみました。
ブートローダー、スケッチともに問題ありませんでした。
意外にあっさりできて驚いています。
今回フラックスを初めて使ってみたのですけど驚きの性能です。
半田にはマストアイテムでした。
GBA Dumper Shield。
ユーザが作った基盤をOSH Park内で公開していて、
ほしい人は注文することができます。
ただピンが順番に並んでいないのであまりおすすめしないです。
1/21 注文
2/16 到着
3枚2033円
NDS版スロットの場合、そのままだとカードリッジに入りません。
両端をカットしないといけないです。
そのあたりは3番目の資料を見てください。
Cardridge - Arduino MEGA VCC - 5V CLK - GND WR - 2 RD - 3 CS - 4 A0 - 22 A1 - 23 A2 - 24 A3 - 25 A4 - 26 A5 - 27 A6 - 28 A7 - 29 A8 - 30 A9 - 31 A10 - 32 A11 - 33 A12 - 34 A13 - 35 A14 - 36 A15 - 37 D0 - 38 D1 - 39 D2 - 40 D3 - 41 D4 - 42 D5 - 43 D6 - 44 D7 - 45 RST - 5V VIN - GND(配線しなくてもいいけど念のため) GND - GND
・ソースコード
github
全てのロムには対応していないです。ご注意ください。
・資料
http://www.slideshare.net/__106__/arduinogameboydump
https://github.com/106-/gbdumper
https://www.insidegadgets.com/projects/gameboy-cart-shield/
TD4は情報豊富で大助かりです。
ただ2017年にもなると部品の入手が難しくなってきているようです。
・74HC154 → 74HC138を2個並べる
・D9-1C → DN9-1Cを使う
できればオリジナルを尊重したいのですけれど
ROMの配線の多さにちょっと泣きたくなるというか・・・。
回路図を見るともじゃもじゃって感じで気後れします。
簡略化する方法として、ATiny2313で作るという素晴らしい代案を発見しました。
これは目から鱗でした。
CPUを創る TD4への道 TD4の代わりのROM部分を作る
そこでふと、ATmega328pでも行けるんじゃないかと思うに至り、
ちょうど単体起動の勉強もしたいと考えていたのでグッドタイミングです。
ROM側の方が高性能という何とも言えない場違い感がいいですね・・・。
まずは回路図を自分で起こすことからしようと思います。