標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第354回]

●TK80動作中の消費電流

ここのところRAMの電流についてのお話が続きました。

ところで、完成したMYCPU80の基板全体の消費電流はどのくらいでしょうか?

というお話をしたつもりだったのですが、どうも「わーい、ついに完成!」というあたりから、いきなり「初回セット受注開始」に進んでしまって、そこから先はもうめちゃくちゃ…、だったものですから、つい忘れてしまったようです。
RAMの電流のお話になったものですから、やっと思い出しました。

TK80回路が動作しているときのMYCPU80基板全体の消費電流を測ってみました。

意外と少なくて、ご覧の通り、300mAちょっと、というところです。
状況によって350mA程度になるときもあります。
それでも少ないです。

前回、RAMの出力ショート電流を測るところでは、ROMもはずして、7セグメントLEDもOFFの状態で測定しました。
それでも、出力ショートさせない状態で370mA〜390mA流れていました。
はて、なぜなのか?

この疑問はすぐに解けました。
やっぱり一番電流を消費するのは、基板にずらりと並んだLEDなのです。
前回のテストではLEDはほとんど全部が点灯していました。
しかし、TK80のモニタプログラムが起動すると、レジスタの値は初期化されて0クリアされるものが出てきます。
7セグメントはダイナミックドライブですから、平均電流は思ったよりも少ないようです。

いずれにしても、これだけの基板、これだけの数のICで、わずか400mA弱ということは、さすがCMOSという感じです。
しかもおそらくそのうちのほとんどはLEDとラインのプルアップ抵抗が消費しているはずです。

じつは試作ボードでは600mAぐらい流れていました。
試作ではLEDの抵抗を1KΩにしていたのです。
今回の基板では赤色LEDについては2.2KΩにしました。
それで200mA以上消費電流を少なくすることができました。

もう配線するスペースがありませんから、GNDラインだって削れるだけ削って、ずいぶん細くなってしまっていますから、そんなところに何百mAも流れて、しかもそれがLEDの点滅に合わせて激しく変化するんですから、そりゃあ心配にもなりますよ。内心では。
それが200mAも減ったわけですから、ずいぶん気持ちが楽になりました。

●51Ωの追加改造について、メールでご質問をいただきました

MYCPU80をご購入いただいたお客様からメールでご質問をいただきました。

51Ωを追加するために、基板の配線をカットしなくちゃならないのだけれど、なんだか心配です。
[第352回]の説明を読むと、カットしたラインがそのまま宙ぶらりんになってしまっているみたいですけれど、カットした線はちゃんとRAMの28pinにつながっているのでしょうか?
それに27pinのすぐ横にあるランドも気になります。どこにつながっているのでしょうか?

[第352回]で説明のためにお見せした写真です。


こうやって見ると、確かにカットしたあと未処理のままにしてあるように見えてしまいますねぇ。
ご心配されるのもごもっともです。
基板の裏だけ見ていると、わからないのです。

基板の表側の写真です。

基板には部品を実装してしまいましたので、新しく拡大した写真を撮ることはできません。
基板が出来上がったときに、スキャナで取り込んだ全体画像から一部を切り取った画像ですから、このサイズがいっぱいのところです。
ちょっと見難いかも知れませんから、2倍に拡大してみます。


黄色の矢印が今回カットしたVddラインの表側です。
シルクパターンでかくれてしまって見難いですけれど、カットしたVddラインのランドとRAMの28pin(ともに黄矢印)が基板の表側でつながっているのが見えますでしょうか。
それから27pinの横のランドですけれど、これはIC262のVddにつながっています(ともに赤矢印)。

☆☆☆51Ω追加改造をするきっかけになった、MS様のメールなのですけれど、ほかにもご指摘いただいていることがあります。でもそれについて説明しようとしますとちょっと長くなってしまいそうですので、本日のところは、[第350回]を最後に、中断したままになっています、操作説明書の続きをUPしたいと思います。☆☆☆

●31. RST命令のテスト(MYCPU80操作説明書から)

MYCPU80組立説明書 V組立 [12]ADD、SUB、CMP、DAD、DAA、RST、INT命令回路 の組立作業後に行う動作テストの説明です。

●31−1. 最初に電源を一度OFFにする

今回のテストはレジスタを強制的にクリアしてから始めたいので、最初にこういうことをします。
メモリ書き込みモードの状態で(DS3−4をONにしたままで)、一旦電源をOFFにします。
そうすることによって、レジスタの値をFFにするためです。

電源を一度切って、数秒待ってから再投入します。
すると、プログラムは電池によってバックアップされていますから消えませんが、レジスタの値は消えてしまいます。
電源がONになったとき、レジスタの値はたいていはFFになります(必ずFFになるとは限りません)。
レジスタの状態をクリアしておいてから、メモリにテストプログラムを書きます。

[注記]ここでは先に電源がONになっていて、何かのプログラムがすでに実行されていて、レジスタの値がレジスタごとにばらばらになっていることを想定して、この作業をするように書きましたが、現在電源がOFFの状態で、これからプログラムの書き込みテスト作業をするために電源をONにする場合には、あらためて電源のOFF/ONを繰り返す必要はありません。

●31−2. RST命令のテストプログラムをメモリに書く

メモリに次のプログラムを書きます(1. メモリにデータを書き込む の説明を参考にして操作してください)。

0000 310000  LXI SP,$0000
0003 04      INR B
0004 CF      RST 1
0005 76      HLT
0006 00      NOP
0007 00      NOP
0008 3C      INR A
0009 0C      INR C
000A C9      RET
(リスト29)RST テストプログラム
 
RST命令は1バイトのCALL命令です。RST命令はCALLするアドレスが決まっていて、そのアドレスによってRST 0〜RST 7の8通りの命令があります。
リスト29ではそのうちのRST 1をテストします。
RST 1はアドレス0008から始まるサブルーチンをCALLします。
サブルーチンをCALLしますから、プログラムの先頭でスタックをセットします。
LXI SPの実行後、INR Bを実行し、RST 1を実行したあとHLTで停止します。
0008から始まるサブルーチンではAレジスタとCレジスタをそれぞれ+1してからリターンします。
0006、0007にあるNOPに意味はありません。
0005のあと0008までの間には何も無いことを強調するためにNOPを入れました。

●31−3. テストプログラムを実行する

プログラムの実行の仕方については 4. テストプログラムを実行する を参照してください。
RESETSWを押しながら、ディップスイッチDS3−4をOFFにします。その後RESETSWを離すとプログラムが実行されます。

プログラムは一瞬で実行され、最後のHLT命令が繰り返し実行されます。
Aレジスタ、BレジスタとCレジスタがそれぞれ+1されています。
RESETSWを押す(押してから離す)と、再びプログラムが実行され、レジスタの値が+1されて表示されます。
RESETSWを押すたびに(押してから離すごとに)、プログラムが実行されて、レジスタが+1されます。
リスト29ではAレジスタとCレジスタはRST 1が実行されない限りインクリメントされないので、それが+1されたということは、RST1が正しく実行されたことを示しています。
 
なおRST命令については、当社ホームページの
「つくるCPU[第221回]」(http://www.alles.or.jp/~thisida/mycpu221.html)
でも説明をしています。

2009.10.6upload

前へ
次へ
ホームページトップへ戻る