SBC8080ルーズキットにパラレルI/O 8255Aをつなぐ

SBC8080にパラレルI/OとFM音源用コネクタを増設する計画です。まずはパラレルI/O LSI 8255Aから…

パラレルI/O 8255Aの回路図

SBC8080は拡張コネクタに8080CPUや8228/8224などの周辺チップからの制御信号線や+5V/GNDなどがでています。
Z80のときよりもさらに楽チンで、IOWIORなどのI/Oチップ用読み書き信号も出ていますし、Z80マイコンのときには手を抜いて作らなかったRESET信号も、ちゃんと拡張コネクタにでています。
よってI/Oポートのアドレスデコード(A7〜A5)を74HC138でおこなってあげれば、あとは拡張コネクタへパラレルI/O 8255Aを接続するだけです。超簡単です。
(8080CPUのファミリーLSIだから、あたりまえですか….)

ちなみに動作確認はいつものLEDを使用します。
LEDチカチカ専用基板wとは14pinフラットケーブルで接続します。

8255A用基板配線実施

8255Aを載せる基板の配線を実施します。
そのうちFM音源も接続したいのでそのためのピンソケットもいっしょに….
外部機器とは14pin フラットケーブルで接続することにしたいのでボックスヘッダもつけます。

SBC8080はSBC6303同様 40pin フラットケーブルで他ボードと接続されています。
先日 フラットケーブルの圧着工具を買いましたので秋月フラットケーブルに1つコネクタを追加して3つ口にしておいたケーブルを使用します。

EEPROMの下駄がサブ基板にあって 高さあるため、今回作ったボードを固定するスペーサーが無いので バラック状態で確認します。
とほほ…

BASICでLチカ

8080のニーモニックは忘却の彼方なので、Z80マイコンでも使ったGrant’s BASICのOUT命令で試してみます。

  • 83hが制御ポートで OUT 命令で80hを出力するとAポートもBポートも出力に設定。
  • 81hがBポートの制御です。データの16進数のビットがOFFとなったポートのLEDが点きます。
OUT &h83,&h80
OUT &h81,&hAA
OUT &h81,&h55

うまくLEDがつきました!!

広告

SBC8080ルーズキットを組み立てる

満を持して登場した「世界初のマイクロプロセッサ8080 CPU用ルーズキット SBC8080」を組み立てました。
部品点数は多いですが着実に部品を組み付ければ確実に動く…はずでした…^^)

実は並行してSBC6303BL(ブートローダ)も作ってまして、そちらはマイクロSDに保存するブートイメージファイル名の先頭にブランクを入れて悩むという恥ずかしい状態で…さほどネタはありませんです。そのうち記事書きます。

部材到着

スイッチサイエンスさんから、SBC8080基板などなどが届きました。
今回は”SBC(シングルボードコンピューター)”といいながら、CPUボード+サブボード(ROM/RAM+シリアル)という構成です。最初から40pinフラットケーブルが活躍します。

SBC6303を作ったときに40pinボックスヘッダやフラットケーブルはゲット済み。
8080CPUや周辺チップは基板とは別に若松通商へお願いしてました。

作成開始~動かず

技術資料に沿ってCPUボード、サブボードの作成を実施します。
それほどはまりどころは無いはずですが、いつもどおりウッカリものなので40pin ICソケットを上下さかさまにつけてしまい、無理に外してハマってりしていました。(一度外すとスルーホールにハンダが残って、板バネICソケットだとピンが上に抜けてきまして…(>_<) )
次からはちゃんと丸ピンのICソケットにしようと心に誓いました。

記念写真を撮って、起動してみましたがシリアルコンソールには何も出ません。
以下を確認してみました。

  • 電源として+5V、-5V、+12Vは出ているか
    • 8080CPUは5V単一電源のZ80と違って3電源となっています。+5Vと+12Vはまぁまぁいい感じ。サブボードにもちゃんと供給されていました。ただ-5Vが-3.7Vぐらいとちょっと低め。でもTK-80もそのぐらいだったという情報をいただいてちょっと安心したり…(あやうくダイオードを張替るところでした)

  • 8224につながったクロックが発振しているか。
    • テスターの周波数カウンターで計測したところ2MHzぐらいが出てました。
  • 8251シリアルチップのクロックは出ているか?
    • ちゃんと発振して153.6kHzが出ている感じです。
  • 写真をよく見るとわかりますがパイロットランプのLEDをつけ忘れていますw このあたりはご愛嬌。

EEPROMが?

起動用のROMですが、データパックの “PTBEXSA.HEX”(機械語モニタつきBASIC)をEEPROMに焼きました。
68系と違ってROMは0000h番地から配置なのでその点だけ注意でした。

実はTwitterで先達の方がEEPROMでハマっていたのは見ていたのですがピンときてませんでした。

動かないSBC8080の回路図をみながら地道に1本づつテスターであたっていて、ハタと気づいたんですが…
私が今回使ったのも 28C256型のEEPROM。技術資料で使用しているのはUV-EPROM(紫外線消去型)の27C256型。
そういえば 、EEPROMとUV-EPROMでは一部のピンアサインが異なっています。

ピン UV-EPROM
27C256型
EEPROM
28C256型
ピン:1 Vpp(+5V) アドレスバス A14
ピン:27 アドレスバス A14 WE (書き込み許可)

アドレスバスA14のピンが違っています。これだとアドレスが正しく指定できません。また、EEPROMのWE (書き込み許可)はライターでの書き込み時に使用するピンなので+5VにつないであげればOKのはず。

手元に27C256型 UV-EPROMはあるのですが 紫外線ランプなどのEPROM消去機材がないので…..以下写真のような下駄を急遽作成しました。1番ピンと27番ピンを逆に接続して残りのピンは同じピンへ接続すれば良いはず。ユニバーサル基板を切って細ピンヘッダとICソケットを装着して作成してみました。

下駄を装着して1回目は起動しませんでしたが、どうもWE (書き込み許可)ピンがフラフラしたせいか中身が壊れてしまっていたようで、再度 PROMライタで機械語モニタ+BASICのHEXファイルを書き込みなおしたところ無事に起動しました!!

むかし雑誌に載っていたNEC TK-80(トレーニングキット)を見ながら指をくわえていた組なので、手元で8080CPUが動いて感激です!!

今後…

今後はFM音源チップを鳴らしてみたいとか8255AをつないでLチカしてみたいとか色々と野望は膨らみますが….
まずは機械語モニタにLコマンドを実装してIntel HEX形式をメモリロードできる機能を追加しないとダメかもです。

Z80自作マイコン用PPI(8255A)ボード

SBC6800用パラレルI/F(PIA)ボードが徐々に出来てきましたので、同じような2階建て手法でZ80自作マイコンボード用にもパラレルI/O(PPI)ボードを作ってみたいと思います。

2階建て作戦はラッピングソケット

以前も紹介したとおり、ラッピング用ICソケット作戦での2階建てはZ80マイコン用PPI(8255A)ボードの着手が先でした。

なんとなくできそうというところで満足して配線は放置してましたので、配線を実施したいと思います。

回路図と配線について

Z80自作マイコン用PPIボードの回路図は以下のような感じです。

パラレルI/O LSI 8255Aは3ポートありますが、ポートCは制御用のイメージだったので ポートA、Bそれぞれに4bitづつわりふって14pin フラットケーブル用ボックスヘッダへ配線する予定です。

また、先日のArduino FM音源ボード用アダプタも積みたいので 間に板バネ40pin ICソケットを挟んで3階建てにする感じです。

確認用のLEDチカチカ

とりあえずZ80 CPU8255Aとアドレスデコード用の74HC128、ポートAの分のボックスヘッダへの配線を実施してLチカで確認してみました。

プログラムはZ80 ASMでかいたものをgistへUPしています。

フラットケーブルで接続

いちいち確認用にブレッドボード用ワイヤでつないでいるとたいへんなので、14pinフラットケーブルで接続できるようにしてみました。
(そんなにLチカばかりするのか?という疑問は置いておいて….)

ちなみに先日作ったSBC6303+PIA(MC68B21P)ボードも14pinボックスヘッダの配線を合わせておいたので フラットケーブルでLチカ可能です。
便利w

今後は Lチカだけではなくて、なにかを制御してみたいと思います。
SRAMをたくさん並べて、バンクメモリーを作るとFM音源の楽曲データがたくさん保持できるなぁとか….