オレ仕様のゲーム機を作ろう(その28)
前回は,68000 オレ仕様ゲーム機「重禄」の仕様を決めました。
今回から,いよいよ制作に入っていきたいと思います。
ただ,全体的には,以前のオレ仕様ゲーム機「鶏八」の回路を流用していくので,基板の構成や,記事の内容はなんとなく似た感じになると思います。
よって,最初の基板も,まずはホスト PC とのやり取りやタイミング信号生成の基板から作っていきます。
作成した基板

(クリックで拡大します)
「鶏八」のインターフェース基板とほぼ同じ構成です。
MPU が 68000 になったので,アドレスバスが 23bit,データバスが 16bit になっています。
そして,制御信号なども,Z80 から 68000 のそれになっています。
これらの信号については,また次回以降に紹介したいと思います。
基板の見た目はあまり代わり映えしませんが,簡単に機能を説明します。
左下にある DC ジャックから 5V 電源を入れ,その下の赤い発光ダイオードが通電ランプとして光ります。
そのすぐ横にトグルスイッチがありますが,これは,デバッグモード起動と通常起動の切り替えスイッチです。
黄色のタクトスイッチがリセットボタンで,白いタクトスイッチがノンマスカブル割り込みボタンです。68000 で言うと,レベル 7 割り込みになります。
左上にコネクタを接続するピンヘッダがありますが,ここにケーブルを接続して,ホスト PC と通信します。
右下に「鶏八」と同様に,8bit の入出力として,黄色の発光ダイオードとトグルスイッチがあります。Z80 のときは,I/Oポートに接続していましたが,68000 はメモリマップト I/O なので,特定のアドレスにマッピングされています。
シルクでロゴを入れてみたのですが,文字を間違ってしまいました。ただしくは「重六」ではなく「重禄」です(笑)。シルクの修正のためだけに,後日,基板を再発注するかどうかが悩ましいですね…。
アドレスバスとデータバス,それと制御信号を 68000 とホスト PC で切り替える回路と,各種タイミング生成信号を作る回路で構成されています。
ホスト PC とのインターフェース
今までは,ホスト PC からプログラムやデータを転送するのに,USB シリアルインターフェースを基板上に搭載して,UART を使った通信を行っていました。
今回は,なにか別の試みをしてみようと思い,この通信する部分を外に出して,UART 以外でも通信できるようにしてみました。(従来のように,UART でも通信できます)
UART だと,通信レートがちょっとネックになっていたので,今回は RaspberryPi を接続し,データの送受信をするようにしてみます。
こんな感じの Raspberry Pi を使います。

GPIO 制御くらいなので,余っていた Raspberry Pi 3B を使います。
最近の Raspberry Pi は,高機能ですが,ずいぶん高価になりましたよね〜。
Raspberry Pi 自体が Linux 搭載のコンピュータなので,直接 Raspberry Pi をホストにすることもできますし,Raspberry Pi を中継してイーサネットもしくは Wi-Fi で接続した PC から制御することもできます。
UART 通信のときは,115200bps とかでやっていたので,それと比較すると転送速度は相当速くなって,かなり快適になりました。
Z80 と比べて,68000 はメモリ空間が広いので,大きいデータを扱っても恩恵を受けられそうです。
動作確認
MPU 基板がまだないのですが,Raspberry Pi からバスにアクセスして,トグルスイッチと発光ダイオードを操作してみます。
Raspberry Pi で,トグルスイッチの状態を読み取って,そのまま発光ダイオードに出力しています。
うまく動作しているようですね。
今回は一発動作したので,幸先は良さそうです。
それでは,次回に続きます!