2019-10-11 23:37 — asano
カテゴリー:
EMILY Boardの16ビットバスへの拡張ボード「EMILY Board +8」を製作しました。
8ビット分のメモリを持ったボードでEMILY Boardと組み合わせて使用します。
基板面積がもったいない気もしますが、スタックする都合とコネクタの配置からサイズは変更できません。
EMILY BoardからマイコンATmega164を外したようなものです。コネクタの配置はもちろん、ICの配置もEMILY Boardと合わせてあります。ソケット下のC,R類の位置は若干異なっていますが。
メモリには同じIDT7134を使用します。
左下のコネクタがATmega164からこのメモリをアクセスするためのコネクタ、EMILY Boardにも同じコネクタを追加しています。
ピン | 信号 | 備考 | ピン | 信号 | 備考 |
---|---|---|---|---|---|
1 | VCC | EMILY Boardから+5Vを供給 | 2 | VCC | EMILY Boardから+5Vを供給 |
3 | D0 | 4 | ALEH | ||
5 | D1 | 6 | ALEL | ||
7 | D2 | 8 | RD | ||
9 | D3 | 10 | WR | ||
11 | D4 | 12 | N.C | 未使用 | |
13 | D5 | 14 | CS1 | ||
15 | D6 | 16 | CS2 | 32ビット拡張用 | |
17 | D7 | 18 | CS3 | 32ビット拡張用 | |
19 | GND | 20 | GND |
コネクタのピン数をケチったのでアドレスはマルチプレクスのままで、そのためのアドレスラッチとして74HC574を2つ積んでいます。
回路的にもEMILY Boardのメモリ部分とほぼ一緒です。
上部の20ピンのデータ用コネクタは残りのピンを使っている点と、ATmega164からのセレクト線がCS1になっている点が異なるだけです。
16ビットバスのCPUボードを製作する前に簡単なテストをしてみます。D0~D7とD8~D15を並列接続すれば4k×8ビットのメモリを2箇所にマップできます。
2つのアドレスエリアに対して別のCSを出さなくてはならないので、アドレスデコーダを搭載している6502ボードを使うことにします。
上記データバスの並列化の他、74LS139のあまっているピンからCSを配線するだけで6502ボードの準備は完了です。
典型的な配線方法は写真のようにEMILY BoardとEMILY Board +8を3つのコネクタともに並列に接続するものです。これで4k×16bitのメモリか、4k×8bitのメモリを2つ提供します。
34ピンのアドレス用リボンケーブルを2本別にCPUボードへ配線することも可能で、その場合は4k×8bitのメモリを2つ、同時に別アドレスへのアクセスも可能になります。インストラクション用とデータ用に別空間・独立バスを持つようなCPUに対応させることも可能です。
さらに20ピンのデータ用リボンケーブルも2本使えば2枚のCPUボードを同時に動かすことも不可能ではありません。ただしデータ用コネクタの使用するピンが異なるのでEMILY Board +8側に接続するCPUボードには何らかの細工が必要ですが...
EMILY Boardのコンソールから追加したメモリエリアへアクセスするにはファームウェアの変更が必要ですが、CPUボードからのアクセスはこのままでも問題なく行えます。そこで6502のモニタからアクセスを試みたところ問題なさそうでした。
次回のソフトウェア編ではATmega164のソフトウェア変更について書くつもりです。
コメントを追加