前回の投稿の回路図にも描いた通り、Z80ブレッドボードマイコンに8255AをつけてLEDチカチカ(Lチカ)をさせてみました。
いろいろと基本がなってなかったのでハマりましたが無事可動しました!
8255Aを2つ持っていた
ちょっとまえに作ったZ80マイコンにI/Oがつけられないものかなぁと思っていたところ、数十年前に購入してPC-8001へFDドライブを接続できないかと買ってあった8255Aが2つ部品箱に転がっていたのを思いだしました。
静電対策をして無かったので生きているかどうかが不安….
8255A を接続するための検討
ひとまず以下の方の回路図などを参考にさせていただき配線してみました。
デカ回路図(B/W gif image, 43KBytes)
自分のZ80ブレッドボードマイコンの接続では以下のようにしました。
- Grant氏の32k版回路図ではROMが8kBのため74HCT32でアドレスデコードしていましたが、ROMもRAMも今回の私の場合は32kBなのでアドレスバスのA15(8000h)のH/Lでコントロールで良いと思い回路を簡略化しました。
- ROMのアドレスデコードで使っていた74HCT32のロジックが2つ浮いたので、IOREQ と RD、WRをあわせた信号線を作って8255AのRD、WRへつなぎました。これでZ80がIO要求をしているときにREAD/WRITEがされるはず。
- 8255AのCEのために74HCT138を1つ追加してアドレスデコードすることにしました。もともとの回路ではリアルチップの6850はI/Oの80h番地に配備されているため そちらも合わせて74HCT138でデコードするかたちにしてみました。
接続イメージのブロック図はこんな感じ。
ちなみに回路図は、前回の投稿にも添付した こちらのイメージです。(たぶん)
なんか動かない….
ブレッドボード上の配線を変更した後、BASICのOUT命令を数十年ぶりに使って動かしてみます。
8255AはI/Oの0番地に配備したので、初期設定は3番地へ 80hを出力すると8255AのA/B/Cポート全部が「出力」になるはず。
あとはLEDをPA0とPA1に接続したので….プログラムはこんな感じ…
交互にLEDが点滅するかと思ったんですがウンともスンとも言わないので、8255Aのリセットピンの接続を手動(w)でVcc (+5V)につないだりGNDにつないだりしていると何故か点灯!! やったと思って動画をとったのがこちら….
Z80ブレッドボードマイコンに装着したPIO 8255Aが動きそうです。うまくコントロールできてないですけど、BASICでLEDチカチカが動き出しました。
ほんとうは互い違いにLEDがチカチカするはずだったんですが…変だなぁ pic.twitter.com/USWpNgxG6w— KUNI-NET元シソペ (@kuninet) May 21, 2018
交互にLEDが点灯せず同時に点いたりと謎の動きをしています。
また電源再投入すると消灯しっぱなしだったりとなにか安定しません….
8255Aが数十年の時を経て壊れているのか? とおもい、チップ自体のテストをしてみようと思いました。
(Z80のときといっしょの展開….w)
というわけで続く…
コメント
[…] 前回の投稿で 生死が不明wの8255Aをテストしてみたいと思います。 […]