パチパチマイコンを作ろう!(その3)
前回は,CPU ボードの IC ソケットとパスコンの取り付けまでを行いました。
残りの部品を取り付け
以下の部品を取り付けていきます。
- アドレス&データ指定用トグルスイッチ
- メモリに書き込まれているデータ確認用 LED
- リセットスイッチ
- DMA データ書き込みスイッチ
- DMA モード切替スイッチ
- リセット IC
- 電源コネクタ
下の方にズラッと並んでいるトグルスイッチ,左側がアドレス指定用,右側がデータ指定用です。
トグルスイッチって意外と高いんですよね。16 個もあると結構な値段になります。
トグルスイッチの上に並んでいる LED が,現在スイッチで指定されているアドレスメモリ内容を表示します。
左上の黄色いタクトスイッチがリセットボタンです。押している間,CPU がリセット状態になります。離すと実行開始します。
その隣の白いタクトスイッチがデータ書き込みスイッチです。
DMA モードで,アドレス用トグルスイッチで指定したアドレスに対して,データ用トグルスイッチで指定した内容を書き込みます。
右上にあるトグルスイッチは,DMA モード切替スイッチです。
右に倒すと DMA モード,つまり,CPU が一時停止し,バスを解放した状態で,スイッチによるデータ入力ができるモードです。
左に倒すとノーマルモード(DMA 解除)で,CPU がメモリの内容に従って実行を再開します。
右の方にトランジスタのような黒い部品がありますが,リセット IC です。
リセット IC は電圧の低下を検出します。
今回はメモリをバッテリバックアップする予定ですが,電源を切った瞬間に,CPU 誤作動でメモリに変なデータを書き込まれないように,リセット IC が SRAM を切り離すようにします。
昔ファミリーコンピュータに,バッテリバックアップ機能があるゲームがありましたが,リセットボタンを押しながら電源を切る必要があるのは,電源断によって電圧が低下した時に,CPU が誤作動してバックアップメモリに不用意に書き込まないようにするためなんですね。
右上にある白いコネクタは電源接続用です。5V のスイッチング電源を接続します。
ワイヤラッピングによる配線
私はいつも「ワイヤラッピング」で配線します。
理由は,よく配線ミスをしてやり直すことが頻発するからです(笑)。
ハンダで接合するわけではなく,ラッピングポストに対して巻きつけるので,失敗したら簡単に取り外すことができます。
ワイヤラッピングというと,足の長い IC ソケット(足がラッピングポストになっている)を使って基板の裏側で行うのがよく見る手法だと思いますが,この足の長い IC ソケット,現在では入手しづらく,また単価が高いんですね。
そこで,ピンヘッダを IC ソケットの横に立てて,それをラッピングポストにします。
インターネットを検索したら,海外をはじめ,いろんな方がやっていたので,自分もこの方法でやってみることにしました。
ただ,この方法,IC ソケットの他にピンヘッダの分だけハンダ付け箇所が増えてしまいます。
しかも,IC ソケットのピンとピンヘッダを導通させなくてはいけないので,ハンダの消費量がハンパないですし,ピンヘッダの価格も意外と安くはないので,トータルで考えるとコストパフォーマンスが悪すぎです。あまりオススメできません(笑)。
動作確認
ワイヤラッピングによる配線が終わったので概ね完成です。
ちゃんと期待通りに動くのか動作確認をしてみます。
どんなものでも,この瞬間はドキドキしますね。
動いた瞬間は思わず心の中でガッツポーズをしてしまいます。(わかりますよね?)
入出力部分がまだないので,目に見える動作結果というのは確認しづらいですが,メモリの内容は,LED で確認できるので,適当にメモリチェックプログラムを実行してみて,実行後に DMA モードに切り替えて,メモリの内容を確認してみることにします。
256 バイトあるメモリ(少なっ!)の後半部分が空くので,以下のチェックを行ってみます。
- 結果確認用の 1 バイトを DMA モードであらかじめゼロクリアしておく
- メモリを 1 バイト読み出す
- 全ビットを反転して読み出したアドレスに書きこむ
- 書き込んだメモリ内容を書き込んだデータと比較する
- 一致していればオッケー。一致していなければ CPU が RAM に書き込めていない
これを一定範囲のアドレスに対して行い,全てオッケーであれば,結果確認用の1 バイトにマジックナンバー的なデータを書き込みます。これを DMA モードで目視確認します。
結果は…,はい!問題なさそうですので,CPU 基板は取り敢えずこれで完成です!(多分…)
次回は,入出力ができる基板を作成していきたいと思います。