有名なZ80CPUを使ってワンボードマイコンを作ってみました。
Z80については
Z80 - Wikipedia
Z80ワンボードマイコン ブロック図
Z80を最低限動作させるために必要な回路とROMのほかに
RAM,PIO,CTCが1枚の基板上に構成されています。
Z80ワンボードマイコン メモリマップ
ハードウェア
〇CPU
CPUにはZ80を採用しています。ただしオリジナルのZ80は入手できなかったのでシャープが販売していたZ80セカンドソース品の「LH0080A」を使いました。
〇ROM,RAM
Z80の64kBあるメモリ空間をすべて利用できるように設計しました。
ROMはROM1とROM2に分けています。
各16kBとしてアドレスレコーダによりチップセレクト信号を生成しています。これはROM1にモニタソフトを入れようと考えているためです。インターフェースボードを作成してTK80のようにボード単体でソフトウェアを作成できるようにする予定があります。
RAMはZ80のRAM領域32kBすべてを使用しています。
〇パラレルI/O
8255を使って24bit分のパラレルIOポートを設けました。
オリジナルの8255はTTL出力ですが今回はCMOS出力の「D71055C」を使っています。
CMOS出力のほうが何かと接続しやすいので…..
〇CTC
タイマーとしてZ80CTCを使いました。
8bitタイマーが三つ入ったシャープ製「LH0082A」を使っています。
Lチカ成功しました。
回路図
Lチカのソースコード
LEDをカウントアップして
一定時間経過すると今度は入力のテストに移行します。
作成した同人誌
C98にて頒布した同人誌です。Z80マイコンボードについてまとめてみました。Z80-CPUやデバイス制御の方法について詳しく知りたいという方にお勧めです。
「Z80-CPU」でシングルボードコンピュータを作ろう - Yoshikiyo Lab - BOOTH
1976年に米国ザイログによって製造された 8ビット・マイクロプロセッサー「Z80」を使ってシングルボードコンピュータを製作・設計する方法をまとめました。 B5サイズ 本文48ページ 表紙イラスト フーフー
コメント
初めまして。Z80マイコンを制作している学生です。
質問なのですが、拡張バスに接続したデバイスの識別はどのように行っているのでしょうか。
デバイス側の回路でアクセス可能なIOアドレスを決めているのでしょうか。
時間があれば、返答していただければ幸いです。
→デバイス側の回路でアクセス可能なIOアドレスを決めているのでしょうか。
だいたいそんな感じです。Z80のIOアドレス「0x00~0xFF」内にデバイスを配置できるようにハードウェアを設計します。あらかじめデバイス側のアドレスを決めておいてソフトウェアから目的のデバイスアドレスを指定して制御しています。
手前味噌ですが、下記の同人誌にデバイス制御(PIOとCTC)についてまとめてありますので、もしよろしければ…
https://yoshikiyo611.booth.pm/items/1729065
返答ありがとうございます。回路でアクセス可能なアドレスを決めていたのですね・・・
同人誌の方は委託等があればぜひ購入したいと思っていましたが、見つけられなくて諦めていたところです。boothに取り扱いがあるのも教えてくださって本当にありがとうございます。
購入し、マイコン設計の参考にさせていただきたいと思います。
親切に教えてくださりありがとうございました。