トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第136回]
●[HC139]組立キットの製作(5)B=1とB=0の回路
これまでの作業でG1_、G2_の回路とC入力信号回路を組んできました。
今回はB入力回路を実装します。
下のオレンジ色で囲った回路です。
B入力回路はその右側にもあります。
左側の回路はC=0のときにアクティブになる回路で、右側の回路はC=1のときにアクティブになる回路です。
今回は左側のC=0のときにアクティブになるB入力回路を実装します。
[抵抗]
R22 51KΩ
R23 200Ω
R24 1MΩ
R25 51KΩ
R26 200Ω
R27 51KΩ
R28 200Ω
R29 10KΩ
[コンデンサ]
C15 22pFセラミック
C16 22pFセラミック
C17 0.1μFセラミック
C18 22pFセラミック
[ダイオード]
D1 1N4148
D2 1N4148
D3 1N4148
D4 1N4148
D6 1N4148
D8 1N4148
D10 1N4148
D23 1N4148
[ICソケット]
S1 8pin丸ピンソケット
[集合抵抗]
B1 10KΩ×8
[LED]
L5 赤LED
L6 赤LED
L7 赤LED
L8 赤LED
L10 赤LED
トランジスタを実装すると抵抗などが隠れて見難くなるので、とりあえずここまで実装した写真をお見せします。
このあと以下のトランジスタを実装します。
[トランジスタ]
T23 2SA1015
T24 2N7000
T25 2N7000
T26 2SA1015
T27 2N7000
T28 2SA1015
T29 2N7000
T30 2N7000
トランジスタ実装後の写真です。
動作テストです。
今回は最終段の出力表示用LED(写真右上のL5〜L8)を実装しましたから、そのLEDで動作の確認ができるようになりました。
このLEDはG1_、G2_がアクティブ(L)で、C=0のときに、BとAの入力によって点灯、消灯します。
ただしまだA入力回路は実装していませんから、その状態でテストをするためには少し工夫が必要です。
C=0、B=1のときをテストします。
以下のテストでは、G1_、G2_はアクティブ(L)でC入力が0(いずれもGNDに接続)の状態でテストを行ないます。
左端のG1_の状態を示すLED(L9)とその斜め右下のG2_の状態を示すLED(L12)はともに入力がアクティブ(L)なので点灯しています。
そのさらに右側のC入力の状態を示すLED(L13)はC=0なので消灯しています。
その右斜め上、ほぼ中央にあるLED(L10)はB入力の状態を示すLEDです。
B入力は写真の下の方に見える丸ピンソケットの左上端から2番目にあります。
その部分を拡大しました。
青色のジャンパーケーブルが挿してあります。
左からC、B、Aとシルク印刷してあります。
B入力のジャンパーケーブルの先は開放してあります。
入力はプルアップされているのでH(1)が入力されていることになります。
上の写真のB入力を示すLEDは点灯しています。
C=0、B=1です。
しかしまだA入力回路が実装されていないため、このままでは最終出力は得られません。
そこで強制的にA=1を作り出したのがさきほどの写真です。
A入力が1のときにはT32(2N7000)がONになります。
その状態を強制的に作り出すためにT32のドレインとソースをジャンパーケーブルでショートしています。
下はその部分を拡大した写真です。
スルー穴の径よりもジャンパーケーブルのピンのほうが細いためゆるゆるですが軽く接触しているだけでも十分機能します。
74HC139は入力B、Aの状態によって出力3〜0がアクティブになりますが、トランジスタ版[HC139]は74HC139と74HC138を折衷したような回路で、入力C、B、Aの状態によって出力Y7〜Y0がアクティブになります。
今回はC=0、B=1、A=1の状態ですから、右から4番目(”Y3”のLED、L5)が点灯しました。
出力表示LEDの部分を拡大しました。
今度は同じ設定でB入力を0(GNDに接続)にしました。
ほぼ中央にあるB入力の状態を示すLED(L10)は消灯しました。
このとき入力の状態はC=0、B=0、A=1になります。
右上の出力表示LEDは右から2番目(”Y1”、L7)が点灯しました。
上では強制的にA入力=1にしてテストをしました。
今度はA=0にしてテストをしてみます。
G1_、G2、Cは今までの状態と同じです。
その状態でB入力を1にしました(入力を開放)。
左端のG1_の状態を示すLED(L9)とその斜め右下のG2_の状態を示すLED(L12)はともに入力がアクティブ(L)なので点灯しています。
そのさらに右側のC入力の状態を示すLED(L13)はC=0なので消灯しています。
その右斜め上、ほぼ中央にあるB入力の状態を示すLED(L10)はB=1なので点灯しています。
A入力が0のときにはT36(2N7000)がONになります。
その状態を強制的に作り出すためにT36のドレインとソースをジャンパーケーブルでショートしました。
下はその部分を拡大した写真です。
入力はC=0、B=1、A=0の状態ですから、さきほどの写真で右から3番目(”Y2”のLED、L6)が点灯しています。
今度は同じ設定でB入力を0(GNDに接続)にしました。
ほぼ中央にあるB入力の状態を示すLED(L10)は消灯しました。
このとき入力の状態はC=0、B=0、A=0になります。
右上の出力表示LEDは右端のLED(”Y0”、L8)が点灯しました。
ところで出力表示LEDが点灯しているビットはアクティブ(0)出力なのですが、それ以外の消灯しているビットの出力は1(約+5V)になっています。
LEDの右側にある8pin丸ピンソケットにはY0〜Y7までの出力がきています。
ピン1がY0でピン8がY7です。
今はまだY0〜Y3までしか回路を実装していませんから、ピン1からピン4までしか出力電圧の確認はできません。
出力電圧はテスターで確かめることができます。
上の写真の状態で、各出力をテスターで確認してみたところ、ピン1(Y0)は0V(実測値1.6mV)で、ピン3(Y2)とピン4(Y3)は約+5V(実測値4.73〜4.76V)でしたが、ピン2(Y1)は+3.5V位でした。
うむむむ?
今よくよく考えてみると、ここに電圧が出ているのはおかしいのですよね。
ここはT31(2SA1015)がONになって+5Vが出力されるべきところなのですがまだT31は実装されていませんからハイインピーダンスの状態のはずです。
しかしこのときはさほど深く考えないで、まだ未実装の回路があるせいだと軽く考えてしまいました。
実はこの記事を書いている時点で、もうT31は実装してしまっていますので、再確認することはできません。
ただちょっと気にはなったので、基板全体の消費電流は測定しておきました。
この状態で1.6mAですから、どこかがショートしている、ということでもなさそうです。
この”Y1”の出力については、A入力の回路を実装後に測定して+5Vが出力されることを確認しました。
トランジスタでCPUをつくろう![第136回]
2015.12.22upload
前へ
次へ
ホームページトップへ戻る