トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第326回]
●プルアップ抵抗1KΩで誤動作??
読者からメールをいただきました。
当連載記事をお読みになって、色々自分でも試したくなり、TR00の1回路をブレッドボードで組んでプルアップ抵抗を10KΩにしてテストをしてみたところうまく動作しました、とのことです。
ところがプルアップ抵抗1KΩではロジックの動作がうまくいきませんでした、とのことでした。
おかしいですね。
プルアップ抵抗を1KΩにしても特に動作が異常になることはないはずなのですが(もちろん電流は増えますけれど)。
せっかくメールをいただいたことですので実際にテストをして確認をしてみました。
TR00回路基板の左端の回路のプルアップ抵抗を1KΩにしました。
その部分を拡大しました。
ちょいとテストをして確認をしてみるだけですから抵抗は仮付けです。
4.7KΩに1.2KΩを並列に取り付けました。
抵抗値は
4.7×1.2/(4.7+1.2)=5.64/5.9≒0.96KΩ
ですから大体1KΩです。
入力になにもつながないときの基板全体の電流です。
2.16mAです。
11の入力ですから出力は0になります。
赤色LEDは消灯しています。
入力Aと入力BをGNDにつなぎました。
00の入力です。
このときが一番電流が流れます。
基板全体の電流は10.85mAです。
うーん。
ちょっと少ないようです。
試しに計算してみたところ0.5〜0.6mAほど少ないようです。
プルアップ抵抗が約1KΩなのでVcc=4.6Vでは4.6×2=9.2mA増える計算です。
ところが10.85−2.16=8.69mAしか増えていません。
9.2−8.69=0.51mA足りません。
1mA以下ですからわずかな違いといえばそれまでですが。
ちょっと気持ちが悪いです。
それはともかくとして、00の入力ですから出力は1になります。
赤色LEDは点灯しています。
入力AをVcc(4.6V)につなぎ、入力BをGNDにつなぎました。
01の入力です。
基板全体の電流は6.51mAです。
増加分は6.51−2.16=4.37mAですねえ。
ここは4.6mA増加するはずのところです。
なぜでしょう。
01の入力ですから出力は1になります。
赤色LEDは点灯しています。
入力AをGNDにつなぎ、入力BをVcc(4.6V)につなぎました。
10の入力です。
基板全体の電流は6.63mAです。
増加分は6.63−2.16=4.47mAです。
やっぱり少しですが足りません。
原因不明です。
10の入力ですから出力は1になります。
赤色LEDは点灯しています。
最後に入力Aと入力BをVcc(4.6V)につなぎました。
11の入力です。
基板全体の電流は2.19mAです。
11の入力ですから出力は0になります。
赤色LEDは消灯しています。
ブレッドボードでテストをする場合などでは基板に実装するのに比べてノイズなどの影響を受けやすくなります。
うまく動作しなかったのはおそらくそういうことが原因なのではないかと思われます。
ブレッドボードは以前私も使ってみたことがありますが、試作とかテストではやっぱりジャノ目基板にハンダ付けするほうが性に合っているということもあって余程簡単な回路のテストでもない限り使いません。
以上参考にしていただければ幸いです。
●たかが1mAされど1mA
上で行なったテストで測定した電流の値が計算上の値とずれているのが気になります。
1mA以下のわずかな値なのですが、それでも私には「そんなにずれるはずはないんだけどなあ」と思えます。
どうにも気になって仕方がありません。
うーん。
なぜだろう?
うなって考えていましたら
「ひょっとすると?」
思いついたことがあります。
上のテストでは左端の回路のみテストに使って、残りの3回路は入力OPENにしたままでした。
入力OPENとはいっても完全にOPENではありません。
入力は4.7KΩのプルアップ抵抗が入っています。
しかし。
その値は十分ではないのではあるまいか?
左端の回路で入力OPENまたは11入力のときの2.16〜2.19mAという値は少し大きいようです。
ひょっとすると右の3回路ではわずかに出力ショートがあるのでは?
4.7KΩプルアップは実用上は問題のない値ですが、やはり微妙な値なのかもしれません。
1KΩでプルアップした回路が動作することが残りの3回路に微妙な影響を与えているとしたら、それが実測値と計算とにずれが出たことの理由になるかもしれません。
ものは試しです。
今度はそういうことのないように残りの3回路の入力は全部Vccに接続しておいて、もう一度同じテストをしてみました。
まずは左端の1KΩプルアップ回路のみ入力をOPENにして、そのときの基板全体の電流を測定しました。
1.34mAです。
1mAほど減りました。
入力Aと入力BをGNDにつなぎました。
00の入力です。
10.54mAです。
上との差は10.54−1.34=9.2mAです。
これはプルアップ抵抗1KΩ×2本を流れる電流の合計と考えられますから、その1/2は4.6mAです。
おお。
Vcc=4.6Vのとき1KΩを流れる電流値に一致しました。
入力AをVcc(4.6V)につなぎ、入力BをGNDにつなぎました。
01の入力です。
5.98mAです。
差は5.98−1.34=4.64mAです。
入力Aの1KΩのみ両端電圧がVccとGNDになりますからその1KΩを流れる電流値にほぼ一致します。
入力AをGNDにつなぎ、入力BをVcc(4.6V)につなぎました。
10の入力です。
6.1mAです。
差は6.1−1.34=4.76mAです。
上の値よりも少しだけ大きいですけれどこれは誤差の範囲でしょう。
入力Bの1KΩのみ両端電圧がVccとGNDになりますからその1KΩを流れる電流値にほぼ一致します。
最後に入力Aと入力BをVcc(4.6V)につなぎました。
11の入力です。
1.36mAです。
これは問題ないでしょう。
ということで、やっと納得できる結果が得られました。
トランジスタでCPUをつくろう![第326回]
2021.3.19upload
前へ
次へ
ホームページトップへ戻る