あーさん日記

https://akkera102.sakura.ne.jp/gbadev/ の中の人

KiCad メモ

スイッチサイエンスPCB

■グローバルデザインルールの設定
ブラインド/ベリッドビアの禁止
マイクロビアの禁止
最小配線幅:0.2mm
最小ビア径:0.65mm
最小ビアドリル径:0.3mm
最小マイクロビア径、最小マイクロビアドリル径はデフォルト値(0.2, 0.1)


■ネットクラスの設定
クリアランス:0.2mm
配線幅:0.25mm
ビア径:0.65mm
ビアドリル:0.4mm
最小マイクロビア径、最小マイクロビアドリル径はデフォルト値(0.3, 0.1)


■ファイル名
ドリルデータ : pcb_name.TXT

ボトムレイヤの名前 : pcb_name.GBL
裏面のソルダレジスト : pcb_name.GBS
裏面のシルク : pcb_name.GBO


基板外形 : pcb_name.GKO

トップレイヤの名前 : pcb_name.GTL
表面のソルダレジスト : pcb_name.GTS
表面のシルク : pcb_name.GTO


※ファイル一覧があるフォルダをzipする


■発注
表面処理  : 鉛入り半田レベラー
レジスト色 : 緑
銅箔厚   : 1oz
層数    : 2
最大外形  : 最大10cm×10cm
基板枚数  : 5
基板の厚み : 1.6mm

参考リンク
http://www.kicad-de-kiban.net/archives/arduino7.html
http://www.kicad-de-kiban.net/archives/dcjack17.html
http://www.kicad.xyz/
https://tech.nosuz.jp/category/%E9%9B%BB%E5%AD%90%E5%B7%A5%E4%BD%9C/kicad/


書籍
トランジスタ技術 2016年 7月号

GBA Dumper その3

https://www.insidegadgets.com/2016/12/06/gbxcartread-part-1-design-and-testing-gameboy-carts/
https://www.insidegadgets.com/2016/12/25/gbxcartread-part-2-switching-to-ch340g-gba-rom-reading-sram-readwrite-and-determining-sizes/
https://www.insidegadgets.com/2017/01/22/gbxcartread-part-3-gba-eeprom-readwrite-flash-write-and-determining-sizes/


ちょうどタイムリーに調べている方のblogを発見しました。なんという幸運。(^^;
英語読めなくてもコードでなんとなくわかりました。


ROMサイズの確定方法は、ヘッダ情報にないから自前で実装するしかないですよね。
他の方のやり方を見れてなるほどと思いました。


SRAM, EEPROM, FLASHまで調べているのでpart2, part3は必見です。
知識欲をかなり満たせてくれます。

GBA Dumper その2

f:id:akkera102:20170127205252p:plain
Arduino DUE + python pyserialで作りました。
ただ、実用性無視なので16MB吸い出すのに41分(!)かかります。
仕組みだけ知りたかったのでこれ以上はやらない予定です。



f:id:akkera102:20170127205300p:plain
今回はかなりの力業でした。
スロットピンとケーブルの接続に根気よく半田づけしたり、
何度隣のピンとくっ付けたことか。。悪夢の何物でもないです。


Dumper Shieldを素直に買えばよかったと後悔しています。
というか今、注文中なので届いたらもう1つ作ってみる予定です。
https://oshpark.com/profiles/shinyquagsire


部品の調達について。
実は、GBAのスロットには2種類あります。GBA版(ピン2列)とNDS版(ピン1列)です。
作りやすさでいえばNDS版一択。
aliexpress、(ちょっと高いですけど)アマゾンjpで購入できます。



マリ○カート、リ○ィエラ、ミスタード○ラーは確認済みです。
github

SLOT --- Arduino DUE
VDD      3.3v
PHI      -
/WR      2
/RD      3
/CS      4

AD0-AD15 22-37
A16-A23  38-45

/CS2     5
/REQ     -
GND      GND

参考リンク
http://douevenknow.us/post/68126856498/arduino-based-gba-rom-dumper-part-1
https://github.com/shinyquagsire23/GBA-GB-ROMDumper
https://robinwieschendorf.de/2016/04/gameboy-advance-rom-dumper-mit-arduino-uno/
https://github.com/RobinTheHood/GameboyAdvanceRomDumper


回路図やコードを参考にするのはいいのですけど、
UNOとMEGAで作るのは良くないと思っています。
理由は前回のログを参照願います。

GBA Dumper その1

f:id:akkera102:20170124000103p:plain
次はGBAです。blogのタイトルにもなっているですし
やらなきゃならないだろうと思いました。
SNESはネタがないので休眠中です。


吸出しは無事成功。
ただし、1点困ったことはArduino MEGA VCCの5vを使用しています。
GBAのカードリッジは3.3vで動作しています。実機で確認しました。


仮にVCC 3.3vでダンプすると、信号が安定せず、
大雑把に10バイト毎に取りこぼしが1個ぐらい出てきます。
再度やり直しても取りこぼし位置は同じです。


んー、参考元のページにも似たようなことが書いてあります。
そもそもArduino MEGAで接続している時点でアドレス出力は5V
対してデータ読み取りは3.3V?電圧が原因?


追記:
たまたまカードリッジが5V対応していて、吸い出せただけのような気がしてきました。
作るなら動作電圧3.3VのArduino Dueが正しい気がします。
ちょっと購入して作り直してみます。


追記2:
Arduino Dueで作り直してみたところ取りこぼしがなくなりました。
MEGAやUNOで作っちゃダメですね・・・こりゃ。

こーどねーむ「ホンコン」 with Arduino を作る

f:id:akkera102:20170119145133p:plain
SNES APU繋がりでちょっと作ってみました。


非常にわかりやすい回路図と、ソースコードだったので素人でも大丈夫でした。
こちらはArduino MEGAを使って部品数を少なくしています。


■部品
・2.54mmピッチカードエッジコネクタ(片側23ピン以上)
http://la04528673.shop-pro.jp/?pid=100749508

・エクステンション基盤
http://la04528673.shop-pro.jp/?pid=100750411

・スペーサー
http://akizukidenshi.com/catalog/g/gP-01861/

・ピンヘッダ
http://akizukidenshi.com/catalog/g/gC-00167/

・ケーブル
http://akizukidenshi.com/catalog/g/gP-03471/


この中で外せないものはやはりM.A.D.さんのエクステンション基板です。
ピンヘッダを半田するだけで済み、ケーブルをちまちま繋げることがなく
楽にできました。m(__)m
f:id:akkera102:20170119145223p:plain
f:id:akkera102:20170119145214p:plain
※基盤の真ん中にはピンヘッダを付けないようにしてください。
カードリッジと接触します。

■配線

Cardridge - MEGA

D0   - 2
D1   - 3
D2   - 4
D3   - 5
D4   - 6
D5   - 7
D6   - 8
D7   - 9

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
BA0  - 38
BA1  - 39
BA2  - 40
BA3  - 41
BA4  - 42
BA5  - 43
BA6  - 44
BA7  - 45

!OE  - 10
!CS  - 11
!WE  - 12
!RST - 13

Vcc1 - 5V
Vcc2 - 5V
GND1 - GND
GND2 - GND


■inoファイル
https://github.com/akkera102/snes_01_dump


■使い方
吸出しの実行はオリジナルのプログラム(WinHongKongArduino)を使いました。


■オリジナル版(たにやま氏 製作)
http://hongkongarduino.web.fc2.com/

SNES APU その3

f:id:akkera102:20170113153409p:plain
https://developer.mbed.org/users/akkera102/code/apuplay/

mbed版作りました。
raspberry pi b+に比べてノイズ少なく、
ピンの列が順番に並んでいるので作りやすいと思います。


ちなみにソースコードは(勉強の為)写経しつつ、相当書き換えました。
劣化移植と思ってください。演奏のみなら同じです。


ジャンパワイヤがちょっと特殊です。
f:id:akkera102:20170113153802p:plain
よくブレッドボードに使われるケーブル(左側)は取っ手部分が太い為、
APUのポートに並べると接触します。使えないのでご注意ください。

SNES APU その2

f:id:akkera102:20170108012805p:plain
再度作り直し・・・。raspberry pi b+ 有線LAN+SSH接続で動作できました。
ソースコードは修正しなくて大丈夫です。


追記:
CPU、SDカードの動作(負荷時)にノイズが乗っています。
スピーカーで聞く分にはいいですけどイヤホンだとキツめ。