KZ80-IOB REV1

以前ユニバーサルボードに試作した 8255A(PPI)搭載ボードに、端末(PC/Mac)接続用シリアル(i8251)を一緒に搭載したI/Oボードのプリント基板を起こしてみました。SBC8080バスに接続できるので、KZ80-CPUB/SBC8080 CPUルーズキット等と一緒に使います。

☆端末(PC/Mac)接続用シリアル(i8251)はI/OアドレスによってはSBC8080 SUBルーズキットの8251とバッティングします。

概要

  • SBC8080バスにつながる I/Oボードです。
    • パラレルI/O(8255A)と端末(PC/Mac)接続用シリアルI/O(8251)を搭載しています。
    • 自作のFM音源チップ搭載Arduinoシールドを乗せるためのピンソケットが配備できるようになっています。(他の方は使いみちが無いかも….)
    • 若干回路をみなおして REV1.1 リリース1.0にすると思います。(時期未定ですが…)

回路について

  • 回路図はこちらです。
    • 回路図、ガーバーデータ等はgithubで管理しています。ご覧ください。
  • パラレルI/O(8255A)、シリアルI/O(8251)、FM音源の各チップのアドレスデコードは74HC138で実施しています。128kメモリーボード(KZ80-1MSRAM)のバンク切り替え用I/Oアドレスを80h番地固定にしていることと、SBC8080 SUBルーズキットとの互換性を考えて以下の設定が推奨です。基板上のジャンパピンを各1つ短絡することで設定できます。
    • パラレルI/O(8255A) ・・・・・・ C0h
    • シリアルI/O(8251) ・・・・・・ 00h
    • FM音源 ・・・・・・ 40h

  • シリアルI/O(8251)のクロック用に水晶振動子 4.9152MHzを74HC4060で32分周して153.5kHzを作り出しています。
  • パラレルI/O(8255A)の入出力端子としてポートA+ポートCの4ポート、ポートB+ポートCの4ポートを14ピンヘッダに出しています。
    • REV1では8255AのグループA/Bの組み合わせと合っていません。次のリビジョン(REV1.1)では変更する予定です。

部品組付けについて

  • 部品表はこちらにあります。OpenOffice等の表計算ソフトで読み込める形式となっています。
  • それほど変わった部品はありませんが、トランジスタ2SC1855は1回路分のNOT回路を構成するために使用しています。同等品であれば大丈夫だと思います。トランジスタのパターンが狭くてハンダ付けがしずらいと思います。すいません。

使用例

Lチカ

  • パラレルI/O(8251A)を使用したLEDチカチカをさせた例は以下になります。

  • LEDは以下のように配線してください。8255AのBポートへ出力する例となります。
    • BポートへLレベルを出力したLEDが光ります。

  • 以下がSBC8080データパック付属の機械語モニタで出力する際のプログラム例です。8255AのI/OアドレスはC0hとしています。
8000
MVI A,80
OUT C3
MVI A,AA
OUT C1
RET
EXEC 8000

FM音源装着

  • FM音源(YM2151)ボードを装着した例です。

使用する場合の注意

  • PC/Macを使ったシリアル通信はSBC8080 SUBルーズキットやSBCシリーズと同様 TTLレベルのUSB-シリアルコンバータで接続してください。GNDの位置がシルク上わかりずらいと思いますが「232C」と書かれた側がGNDです。
  • SBC8080 SUBルーズキットといっしょに使用する場合は、端末用シリアルI/O(8251)のI/Oアドレスをズラすか どちらかの8251を外して下さい。

これで、Z80 CPUボード(KZ80-CPUB)、メモリーボード(KZ80-1MSRAM)、I/Oボード(KZ80-IOB)がそろって、3枚一組でマイ・コンピューターとして動作できるようになりました。
ひとまず、このセットを KZ80-I (ケーゼットハチジュー・ワン)と命名したいと思っています。^^)/

広告

KZ80-1MSRAM Rev.1 リリース0.9

以前 手配線でユニバーサルボードに試作した 128kBバンクRAM/ROMボードの基板を起こしてみました。

概要

  • SBC8080バスにつながる 128kBバンクメモリー+ROMボードです。
    • 名称の”1M”は1Mbitということで…^^) 1MBではありません。
    • 若干回路をみなおして リリース1.0にすると思います。(時期未定ですが…)
  • 本基板に関するKiCAD等の回路図/ガーバーデータ、機械語モニタ+TinyBASIC用 ソース、HEXデータはGirhubで管理しています。ご覧ください。
  • メモリーマップは以前の記事でも紹介したとおり、以下のようになっています。

回路について

  • 回路図はこちらです。
    • 回路図、ガーバーデータ等はgithubで管理しています。ご覧ください。
  • 74HC139でROM/RAMの切り替えとバンク切り替え用I/Oアドレスのデコードを行っています。
    • メモリーはROMが16kB、固定RAM域が16kB、バンクメモリ域が32kBとなっています。
  • 74HC573でバンクメモリー番号を保持しています。バンク番号はI/Oアドレス80hへ1、2,3のバンク番号を出力することで切り替えできます。(☆前回の試作のI/Oアドレスから変更しています。FM音源ボードとぶつかってしまって…(>_<))
    • 実際の128kBメモリーのアドレスバス A15、A16のコントロールは74HC543の出力をゲートICでデコードして接続しています。
    • バンク番号0(ゼロ)はバンク1へ読み替えて出力するようにしています。

部品組付けについて

  • 部品表はこちらにあります。OpenOffice等の表計算ソフトで読み込める形式となっています。
  • 1Mbit SRAMはHM628128、ROMは28C256型を想定しています。
    • 秋月電子で売っているSOPの1M bit SRAMでもDIP変換すれば使えるものがあります。☆ビンアサインがHM628128と異なるSRAMもあるようですので注意してください。

ソフトウェアについて

  • バンクメモリーの切り替えは、8080マシン語で書くと以下のようなコードとなります。
4000
MVI A,1  ← バンク番号を指定
OUT 80h
RET
EXEC 4000
8000
DEFINE 01,02,03   ← 適当な値を入力して 別々のRAMが選択されていることを確認
DUMP 8000
  • バンクメモリーの領域がSBC8080 SUBルーズキットのもともとのRAM領域となっているため、SBC8080データパックの機械語モニタ+TinyBASICなどのワークエリア、スタック域等を固定RAM域へズラす必要があります。
    • 参考として、機械語モニタ+TinyBASIC(PTBEXSA.ASM)のワークエリア、スタック域等の変更箇所は以下になります。
    • (10/21追記) こちらのソース/アセンブリ後のHEXファイルはgithubに添付しました。

[各種アドレスの変更]

FTOP    EQU 4000H
LTOP    EQU 5000H
VTOP    EQU 07000H
STACK   EQU 07E00H

[機械語モニタのTOPアドレス変更]

main:
    LXI H,-484
    DAD SP
    SPHL
    LXI H,482
    DAD SP
    XCHG;;
    LXI H,16384       ;<-- ココ
    CALL    CCPINT

こちらを変更した際のメモリーマップは以下のようになります。

想定している用途

  • わたしはバンク切り替えできるメモリーエリアにFM音源の演奏データを入れて、複数データを切り替えながら演奏してみたい! という用途で作りました。
  • 一時点でアクセスできるメモリーは64kBですが、64kBの壁を超えてメモリーにデータを置くことができますので、いろいろと楽しい使い方ができるのでは?と思っています。

KZ80-CPUB Rev.1

以前 ユニバーサル基板で作った Z80 CPUボード(SBC8080バス直結) のプリント基板を起こしました。

githubにガーバーデータを含めたデータを公開しています。
また、オレンジピコさんでも基板を販売していただけることとなりました。

概要

  • SBC8080バスにつながる Z80 CPUボードです
    • ☆SBC8080との完全互換ではありません。
    • 外部リセット端子がつながってません
    • DMA関係の配線がされてません。(#BUSREQ/#BUSACK未配線や#IOR/W、#MEMR/WのHiZ未対応とか…)
  • 単体ではメモリー/ROM/シリアル等がありませんので、SBC8080 SUBルーズキット等と組み合わせてご使用下さい。

回路図について

  • 以前ユニバーサルボードで作成したときと回路は一緒です。プリント基板化に伴いバイパスコンデンサ、電源端子等も正しく書き加えました。

部品組み付けについて

  • 部品表はこちらに OpenOffice等の表計算ソフトデータとしてUPしてありますのでご覧ください。
  • Z80 CPUは CMOSタイプの Z84C0020PEC で動作確認しています。
  • ロジックICのインバータのみCMOSタイプ(74HC04 or 74HCU04)必須です。
  • 電解コンデンサは極性にご注意。(タンタルだと爆発の危険も…)

ソフトウェアについて

基板のデータ等

各種ライセンス等

  • girhubの方のライセンス文書にも書きましたが、MIT License のもとで公開します。

KiCADの回路図描きの練習から始めて、プリントパターンエディタの使い方の練習、オートルーターのセッティングなど色々とありましたので、今後じわじわとBLOGにまとめて行ければと思っています。