Z80
Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
BASICインタープリター [Z80]
2012年5月31日
KM-Z80(MZ-80K互換マイコン)製作編 [Z80]
2012年5月28日
ブレッドボードではなく、ユニバーサル基板上にKM-Z80を作成した。
ずっとブレッドボードのまま保存しておくわけにも行かないし、また、公表したKM-Z80の回路図の確認もかねてということで、ユニバーサル基板の上にKM-Z80を構築してみた。
ずっとブレッドボードのまま保存しておくわけにも行かないし、また、公表したKM-Z80の回路図の確認もかねてということで、ユニバーサル基板の上にKM-Z80を構築してみた。
SDCC用の環境構築 [Z80]
2012年5月22日
Z80用のコンパイラとして、何か使えるかなと思い、Webを色々検索してみると、SDCC (Small Device C Compiler)というものを見つけた。ライセンスはGPLだから、普通に使える。
使い方に関する情報が多くはない。それでも先人の方々がいらっしゃるので、初めての人間には非常に助かる。以下のページを参考にして、KM-Z80用(MZ-80K用)のソフト開発環境を構築してみた。
・Z80のC言語クロスコンパイル(SDCC)(1) - Resilient Mind
・SDCCでクロス開発環境をインストールと使い方(Z80用) - Tosikの雑記
使い方に関する情報が多くはない。それでも先人の方々がいらっしゃるので、初めての人間には非常に助かる。以下のページを参考にして、KM-Z80用(MZ-80K用)のソフト開発環境を構築してみた。
・Z80のC言語クロスコンパイル(SDCC)(1) - Resilient Mind
・SDCCでクロス開発環境をインストールと使い方(Z80用) - Tosikの雑記
KM-Z80(MZ-80K互換マイコン)回路図編 [Z80]
2012年5月16日
先日紹介したKM-Z80の回路について、少し説明します。
KM-Z80は、ICとして以下のものを用いています。CPLDについてはPLCCパッケージのものが、その他のICについてはDIPパッケージのものが、Digi-Keyあたりで手に入ると思います。
CPU: Z84C00 (Z80 CPU; Zilog)
RAM: 62256 (32 Kbytes static RAM, Cypress)
Timer: 82C54 (8253 upper compatible; Intersil)
CPLD: EPM3032ALC44-10N (Altera)
Microcontrollers: PIC12F683, PIC18F25K22, PIC18f14K22, PIC18F14K50 (Microchip)
用いたZ80は、本来10 Mhzで動く能力を有していますが、MZ-80Kのクロックスピードにあわせるため、2 Mhzで使用しています。RAM は、32 Kbytes のものを用いていますが、そのうち、4 Kbytesを仮想ROMとして、別の 4 Kbytes をキャラクターディスプレイ用に用いているので、KM-Z80 の中で実際にRAMとして使用可能なのは、24 Kbytesです。
MZ-80Kでは、コプロセッサとしてI/O用に8255、タイマー用に8253を用いていますが、これらの代わりに、PIC18F14K22と82C54を用いました。PIC18F14K22の中で、8255の動作をエミュレートしています。82C54は8253のアッパーコンパチブルなので、そのまま用いています。
キャラクターディスプレイは、汎用ロジックやCPLDなどで構築すると複雑なので、代わりにPIC18F25K22で実装しました。ここの部分が KM-Z80 のミソと言っても良いでしょう。これの開発途中で試作品として出来たのが、以前紹介した、PIC18F14K50を用いたキャラクターディスプレイです。
KM-Z80は、ICとして以下のものを用いています。CPLDについてはPLCCパッケージのものが、その他のICについてはDIPパッケージのものが、Digi-Keyあたりで手に入ると思います。
CPU: Z84C00 (Z80 CPU; Zilog)
RAM: 62256 (32 Kbytes static RAM, Cypress)
Timer: 82C54 (8253 upper compatible; Intersil)
CPLD: EPM3032ALC44-10N (Altera)
Microcontrollers: PIC12F683, PIC18F25K22, PIC18f14K22, PIC18F14K50 (Microchip)
用いたZ80は、本来10 Mhzで動く能力を有していますが、MZ-80Kのクロックスピードにあわせるため、2 Mhzで使用しています。RAM は、32 Kbytes のものを用いていますが、そのうち、4 Kbytesを仮想ROMとして、別の 4 Kbytes をキャラクターディスプレイ用に用いているので、KM-Z80 の中で実際にRAMとして使用可能なのは、24 Kbytesです。
MZ-80Kでは、コプロセッサとしてI/O用に8255、タイマー用に8253を用いていますが、これらの代わりに、PIC18F14K22と82C54を用いました。PIC18F14K22の中で、8255の動作をエミュレートしています。82C54は8253のアッパーコンパチブルなので、そのまま用いています。
キャラクターディスプレイは、汎用ロジックやCPLDなどで構築すると複雑なので、代わりにPIC18F25K22で実装しました。ここの部分が KM-Z80 のミソと言っても良いでしょう。これの開発途中で試作品として出来たのが、以前紹介した、PIC18F14K50を用いたキャラクターディスプレイです。