2019-09-09 23:48 — asano
カテゴリー:
作りかけで何度も中断し放置してきたメモリ基板がやっと動き出しました。
これ構想しはじめたのは何年も前、製作に着手してからでも半年近く経過しています。一気にやれば大して配線量はないんですけどね。
ここでも紹介しているように歴史的なプロセッサを多数持っていますし、珍しいのを見かけて買ってしまうことも多くどんどん増えています。できれば単なるコレクションではなく動かしたいと思っているのですが...
今時のマイコンは高速なので、周辺回路(最低限メモリとUARTなど)をエミュレーションさせる方法もあります。AVRマイコンなどのGPIOをターゲットのバスに直結してあとはソフトウェアで処理するわけです。これはこれで面白いとは思いますが、個人的にはちょっと違う気がします。
一方で当時使えたパーツのみにこだわって作る道もあります。ROMには1702AやμPD454などを用い、RAMには2101や2114などを使うなどです。こんなのも一度はやって見たいと思いますが、毎回これでは大変です。
そこで現実的なところを考えてみました。
ほとんどのプロセッサはSRAMを接続し、その中の命令を実行し、読み書きが可能です。それならROMエミュレータ機能を持ったメモリボードを作り、SRAM同等のインターフェイスを用意しておけばどのプロセッサでも共通に使えます。
これでプロセッサごとに必要な回路を最小限にでき、以下を専用に作るだけで大半のプロセッサを動かせるはずです。
- CE, OE, WEのための簡単なゲート
- マルチプレクスバスの場合はアドレスラッチ
- クロック・リセット回路
ということでこのメモリ基板を計画したのです。
上にある34ピンと20ピンのコネクタにCPUボードを接続します。
20ピン側がデータバス、34ピン側にアドレスなどが配置してあります。ピン数がかなり余っていたり、2つに分けてあるのは将来の拡張を予定しているためです。
48ピンのIDT7134SA55Pは4k×8bitのデュアルポートSRAMです。ROMエミュレーションだけなら通常のSRAMを切り替えても可能ですが、これも将来のためにこれを使いました。配線が楽になるという理由もあります。
その下に2つある20ピンはSN74HC574N、アドレスラッチです。
下はATmega164P-20PU、ROMエミュレーション機能のコントロール用のマイコンです。以前のROMエミュレータではAT90S2313を使いましたが、ピン数がギリギリだったのでこれに変えました。UARTが2系統あること、8ビットのまとまったポートが取れること、できれば使い慣れていることということで選んでいます。クロックは右のSG-8002DCから19.2MHzを供給しています。
ソフトウェアはROMエミュレータとほぼ同等のものが入っています。
右側の12ピンのコネクタはTTL-232R-5V用で2つまで接続できます。6ピンはATmega164の書き込み用です。
IDT7134のピン配置はポート毎に上下に別れているので、配線も分かれてしまっていますね。
このボード、構想から製作開始まで時間がかかっている理由はどういう構成にしようか迷っていたことが大きく、次回はそのあたりと拡張予定について書きたいと思います。
Add new comment