はじめに
私が小学生の頃、空前のマイコンブームでZ80を使用したマイコンボードやそのキットなどが数多く発売されていました。このブームはその後のMZ-80やPC-6001などのマイコンに発展していくのですが、他方でマイコンボードを自作するという方向の発展もありました。
マイコンボードの自作というのは、既製品のマイコンとは異なり自分でアーキテクチャを決めることができるので無限の可能性があります。
時間とお小遣いに余裕ができた今、もう一度小学生のあの頃に戻った気分でマイコンボードを製作してみようと考えました。
ファミコンのカセットを自作する猛者現る
最近はプリント基板を発注すると数週間で届くようなサービスが出てきたり、いろいろなハードウェアプロジェクトを公開できるような海外のサイトなどもあり、インディーズのハードウェア界隈も活況に沸いています。
そんな中、初代のファミコンのカセットを作成しているクリエイターの方もいるようで、cc65などを使用してファミコンのバイナリを作成し、自分でROMに焼いてカセットにしている人がいることを知りました。
『自分だけのファミコンのカセット』
とても魅力的です。
ファミコンのハードウェアにはCPUとPPUしか載っていないので、メモリなどはカセット側に持たせることができます。ということはROMやRAMだけでなく、メモリマップドI/Oを使用することでシリアルポートやパラレルポート、ディスクドライブなどもつけることができるんじゃないかと思います。そのひとつがディスクシステムだと思います。
この理屈で行くとSDカードを搭載したカセットを作ることができるんじゃないかということになります。
SDカードを搭載してArduinoと連動したり、OSのようなものを搭載してSDカードから自作のプログラムを読み込んで実行するなどもできそうです。
全部作っちゃえばいいじゃん
CPUと入出力はファミコンを借りるのですが、そこまでこだわらなくてもいいんじゃないか。いろいろと思考を繰り返していく中で「全部自分で作ってみたらいいんじゃないか」ということにたどり着き、MOS6502のワンボードマイコンボードを作成することにしました。
MOS6502のワンボードマイコンを製作されている方は海外も含め多くおられるようで、参考となるドキュメントもたくさんあります。未だにMOS6502のCPUも入手できるようなので、部品を集めてチャレンジしてみることにしました。
クロック発生回路
マイコンボード製作のなかで最初に重要な箇所となるのがクロック発生回路です。マイコンの中でもかなりアナログな部分じゃないかと思うのですがクロック発生回路の仕組みが理解できていなかったために、なかなか手が出せずこの回路を作成するだけで1年間ぐらいかかりました。(ほとんどの時間は考えているだけの時間だったのですが。)
ただの1.8234MHzを叩き出すだけの鼓動回路です。これがCPUの鼓動となる心臓の源となるのです。今回はクリスタルと74HDUO4を使うことでクロック周波数を生成しています。
設計上のコンデンサ容量では想定通りのクロックを発信することができずブレッドボードで仮組みしては計測して周波数をあわせました。

アダプタから5Vの電源を取って、電源ランプも追加しました。これで、1.8234MHzが出ているようです。

あとで知ったのですが、モジュール型のクリスタルというのもあるようで、それだと正確なクロックを取り出すことができるようです。
次のステップへ
次は実際にCPUやRAMとROMを実装していきたいと思います。
そして、マイコンボード本体以外にもROMライターなども自作してみたいと思います。
やっとQiitaに記録を残せたので、次のステップへ進むことができます。なかなか、製作過程の写真や文章をまとめるのが億劫で製作してから1ヶ月ぐらい経ってしまいました。
やはり製作→記録を繰り返していかなければ、製作の過程を残すことができません。
製作工程の中で何が難しかったか、その問題をどうやって克服したのかを記録していかなければ、ただマイコンボードを作っただけになってしまうので、これからも製作と記録を繰り返していきたいと思います。



