kitune-sanの日記: 自作PCメモ その3 8
せっかく自作PCを組むので、配線して終わりではつまらないので回路図を見ながら動作の理解を深めたいと思う。
あと、代替の部品や回路の検討も行っていきたい。
ざっくりデータシートと回路図を見ながらメモしているので、文章はめちゃくちゃだし間違いもあると思う。
間違いはそのつど修正する。
参考はここの189ページ目(64/256K System Board)から
○ Sheet 1 of 10
・8088
8088がメインのプロセッサで、この内、READY,CLK,RESETは、8284Aに接続されている。
AD0-AD7,A8-A19は、アドレスバスでLS373に接続されている。なおアドレスバスの内、AD0-AD7はデータバスを兼ねており、これはLS245に接続されている。
S0-S2は、8088からのバス制御の命令が出力され、これが8288へ接続されている。
INTRは、外部からの割り込みを受け付ける入力で、AD0-AD7とともに8259Aへ接続されている。
NMIは、外部からの割り込みを受け付ける入力で、割り込みコントローラを介さない割り込みのようだが詳しいことは他の回路を確認したときに調べることにする。
NMIのnon-maskable-interruptとは、割り込みを無効(マスク)できないという意味である。
・クロックジェネレータ(8284A)
8284Aには発振回路があり、このICでX1-X2に接続された発振子の分周をおこない、5MHz(10MHz)のクロック信号を生成し8088のCLKへとクロックを供給している。(CLK88)
OSC端子には分周される前のクロックが出力されており、外部のバスへ引き出されている。
PCLK端子には、CLKのクロックをさらに分周し、タイマーやスピーカーの回路に使用されているようである。
/RES端子には、PWR GOODと呼ばれる信号が外部に接続(おそらく電源ONスイッチ)されており、この入力がLOWとなり、かつクロック供給が行われたときに8088へ接続されたリセットが解除されるようになっている。(RESET)
RDY1,AEN端子は、バスに接続された回路の準備が完了したことを確認する入力で、準備が完了すると8088へ伝え、8088が動作を開始するよう(READY)だが、詳しいことは他の回路を確認したときに調べることにする。
代替の部品は82C84A
部品が手に入らない場合は自分でロジックICとフリップフロップを組み合わせてもできそう
・アドレスバス(LS373)、データバス(LS245)
参照先は適当にググって一番上に出てきたものなので、若干ピンの名前が違うけれども気にしない。
アドレスバスは、AD0-AD7,A8-A19の合計20ビットあるが、この内AD0-AD7はデータバスを兼ねている。
基本的にはアドレスバスの出力を受けたメモリなどがデータバスにデータを返すため、このままだとデータとアドレスがぶつかってしまう。ではどうするか。
ここで出てきたのがLS373。これのラッチ出力機能を使用したのである。
まずはじめにアドレスをAD0-AD7,A8-A19に出力し、LS373の各D端子に入力をする。その後、G端子にラッチ入力(H)をする。
すると、LS373の各Q端子には、AD0-AD7,A8-A19の入力がそのまま出てくる。その後ラッチ入力をLに落とせばアドレス端子の状態がどうなろうとQ出力状態が保持される。
この間に、AD0-AD7をLS245を使用して入力なり出力なり処理をしようとアドレスバスの状態が変化することはない。
これらの処理は、8088から司令を受けた8288が行っている。
代替部品は、いくらでもありそう。
ただ、CMOSを使う場合には注意が必要。バスに接続する回路にTTLを使用してしまうと、TTL->CMOSの場合レベルを確実に検出できないかもしれない。
CMOS->TTLでは問題ないように見えるが、CMOS側のドライブ電流を確認しなければならない。結構面倒である。(これはTTLも同じか)
外部バスは、おそらく入力/出力ともにTTLだと思うので、完全にCMOS構成に置き換えるのは難しい?
80C88では、アドレスバスに82C82と、データバスに82C86が使用されている。
DC Electrical Specificationsを見た感じでは、上記の問題を考慮されているようである。
・バスコントローラ(8288)
バスコントローラは、アドレスバスとデータバスの制御を行っている。
8088に接続された/S0-/S2信号によって、各コマンド信号(/MRDC,/MWTC,/AMWC,/IORC,/IOWC,/AIOWC,/INTA)の制御を行う。
それぞれのコマンド信号については、それを使用する回路を調べる際に確認することにする。
ALE信号は、アドレスバスの制御IC LS373の/G端子に接続されており、アドレスのラッチ制御を行っている。
DT/(/R)信号は、データバスの制御IC LS245のDIR端子に接続されており、データの入出力制御を行っている。
DEN信号は、データバスの制御IC LS245の/G端子に接続されており、データのラッチ制御を行っている。
(出力(W)の場合は、データバス側へデータを出力する処理、入力(R)の場合は、データバスの状態を、AD0-AD7へ出力する処理)
この信号は、割り込みコントローラの(/SP)/(/EN)の信号とNANDを作っており、割り込みコントローラによって強制的にバスへの出力状態になるようになっている。(実際にはラッチをしないとバスへは出力しない)
/AENとCENは、それぞれアドレスバスの有効/無効、コマンドの有効/無効を制御する入力で、シート1外にあるので詳しいことは他の回路を確認したときに調べることにする。
代替の部品は82C88, uPD8288D?
・割り込みコントローラ(8259A)
割り込みコントローラは割り込み要求が入ったことを検出し、それを8088に伝える動作を行っている。
IR0-IR7は割り込み要求の入力である。IR0にはタイマー割り込み、IR1にはキーボードの割り込みが割り当てられている。その他は外部に引き出されている。
INT端子は、8088に割り込み要求が入ったことを伝える信号である。
/INTA端子は、割り込み要求が入ったことを検出した8088が、割り込み処理を受け付ける準備ができたことを検出するための入力である。(8288の/INTA端子に接続されている)
(/SP)/(/EN)端子は、8288のDEN端子とのNANDを介してデータバスの入出力制御を行う出力で、LS245のA側(8088側)への出力によって後述の割り込みベクタとのデータがぶつかることを阻止するための出力である。
D0-D7は、8088のデータバスに接続されており、割り込み発生時に割り込みベクタを8088へ通知するための出力である。(あとレジスタの設定にも使用する)
/CS,/RD,/WRは、8259Aへの割り込み設定(割り込みマスクなど)の書き込み・読み出しを行う際に使用する入力端子。具体的なレジスタの設定などは割愛。(データシートICWx,OCWxの項)
これらの制御方法は、シート1外にあるので詳しいことは他の回路を確認したときに調べることにする。
代替の部品は82C59A, uPD8259A
ここまでで、入手性が一番悪そう。
続く! …のか?
74HC (スコア:1)
> CMOSを使う場合には注意が必要
CMOS汎用ロジックの定番4000シリーズだと、動作速度が74無印よりも遅いのも注意が必要かと。
で、74HCTならTTLとの相互接続も問題ないし、速度的にもLSとほぼ同等ですね。
基本的にTTLのと同名だから代替品も探しやすいし。
Re:74HC (スコア:1)
3/19 現在で (スコア:1)
Re:3/19 現在で (スコア:1)
SN75477ってなにかと思ったら、スピーカーの出力と、ドライブの制御にあるリレー駆動に使っているトランジスタのことですね。
ほかでも使っているかもしれません。
すみませんまだそこまでしっかり見ていないのではっきりと言えないのですが、それなりに電流を駆動できるトランジスタ(かデジトラ)に差し替えできるのではないかと思います。
電源 (スコア:0)
現行の電源規格もいくつか改訂入っているかと思いますが、動きますかね。
あるいは昔の電源を探してくる?
ACアダプタ対応電源基板なんてのもあるから、こちらも自作することになったりして。
Re:電源 (スコア:1)
PowerGoodSignalをなんとかしないといけないけど多分大丈夫でしょう。
どちらかというとビデオカードとFDドライブをどうするか考え中・・・
Re:電源 (スコア:1)
正直どっかでカードを探してきた方がいいような気も……
FD はちょっと探せば普通に新品で手に入ります。あとは Microchip の FDC37C78 あたりを Digikey とかで入手すれば FDC 回りはたいした手間ではないはず。
Re:電源 (スコア:1)