標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第356回]
●今回は訂正のオンパレードです
前回、MYCPU80キットをご購入いただいたNN様からメールで説明書のミスをご指摘いただいて、それをホームページにUPさせていただいたのですけれど、うっかりしてもう1箇所ご指摘いただいたところを落としてしまいました(恥の上塗りならぬミスの上塗りです。いや、やっぱり恥か…)。
8080命令説明書6ページのフラグレジスタの表がずれてしまっていました。
下のように訂正いたします。
ビット位置 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
フラグ | S | Z | x | H | x | P | x | C |
×は使用されない
●今度は自分でみつけたミスです
って、それは自慢にも何もならんでしょうよ。
MYCPU80操作説明書46ページの(リスト30)割込みテストプログラムの、アドレス0008が
0008 C30700 JMP $0004
になっています。マシン語コードは合っているのですが、ニーモニックのアドレスが間違っています。
下のように訂正してください。
0008 C30700 JMP $0007
48ページでも同じプログラムを引用していますが、そこも同じ間違いをしていますから、同様に訂正をお願いいたします。
なお、この部分は、前回、操作説明書からのコピーということでUPしたところです。
ここのところミスが続いているものですから、なんとなく気になって、本日になってから昨夜UPしたところを見直していて、みつけてしまいました。もちろん前回UPしたページはみつけてすぐに修正しました(みっともないですものね)。
●もうひとつ、みっともないミスです
[第351回]でご説明しました、RAMの出力データとトグルスイッチがショートするのが気になります、とメールしていただいたMS様から、説明書のミスをご指摘いただきました。
MYCPU操作説明書38ページの(リスト21)のアドレスが間違っています。
下のように訂正してください(アドレスが、0000、0002、0004になっていました)。
0000 3C INR A(8)
0001 D398 OUT 98(8)
0003 C30000 JMP $0000(12)
(リスト21)OUT テストプログラム
MS様。ミスをご指摘いただき有難うございました。
●とんでもないミスがみつかってしまいました
ご購入者様から写真添付でメールをいただきました。
あまりにきれいに撮れている写真ですので、そのまま転載させていただきました。
メールをお送りいただいたYI様。ご了解願います。
いただいたメールの内容です。
「IC181とIC194のVdd(pin20)のラインはどこに行っているのでしょう?矢印のパターンが気になりますが…」
一瞬、絶句です。
こ、これって、まさか…。
うそだよねー(もう、涙が出てきそう…)。
Vddのラインが、スルーホール落ち。
つうことは、IC181とIC194は、なんとVdd無し!
んでも、動いてしまうんですよねぇ。
TTLじゃ考えられなかったことなのですけれど。
CMOSはこういう教科書ではありえない芸当をやってのけてくれます。
30年もこの仕事をやっていますと、けっこういろいろなことを経験してしまいます。
今回と類似のことは経験済みです。
そのときは、Vddではなくて、なんとGNDラインの配線忘れ!
んな、ばかな。動くわけ、ねーだろーが。
それがちゃんと動いてしまうんですよね。7pinとか8pinとかが無配線のままで…。
だから試作の段階では配線ミスに気がつかなくって、本番の基板を作ってしまってから、ときどきおかしい動作をするのが出てきて、それで追求していくうちに、GNDが無い!って気がつきました。
今回のこのMYCPU80基板だって、私の基板も、それからご購入いただいた皆様の基板も、何事も無くちゃんと動作しているようです。
IC181とIC194のあたりの写真をお見せします。
こちらは完成したときにスキャナで取り込んだ画像から切り取ったものなのですが、ちょっとピンボケです。
IC181、IC194は、PCH、なんとプログラムカウンタです。
プログラムカウンタから外部アドレスバスへの出力を制御する74HC244じゃありませんか。
そりゃふつうなら、プログラムもまともに走らなくて当然のところなのですけれど。
私のボードはTK80モニタまでまともに動いてくれています。
いったいなにもつながっていないはずの20pinはどうなっているのでしょう?
オシロで見てみました(写真A)。
上側(CH1)の波形がIC181のpin20です。
かなりひどいノイズですけれど、どうやって持ってくるのか知りませんがなんとか+5Vになっています。
参考までに。下側(CH2)の波形は、お隣のIC182のpin20です。
こちらもノイズはありますが、でもCH1ほどひどくはありません。この程度なら動作に支障はありません。
せっかくですから、もう一枚お見せします(写真B)。
上側(CH1)の波形は写真Aと同じ、IC181のpin20です。たまたま同期が取れました。
下側(CH2)の波形はIC165のpin20です。
これがIC165です。
パスコン(C5)がついています。
やっぱりパスコンがついているのといないのとでは、ノイズの量が違います。
前回書きましたけれど、パスコンも場所によってはそれなりに効果的ではあります。
しかし、さきほどの2枚のオシロの写真を比べていただいて、この場合、果たしてパスコンは必須か?といいますと、さて、どうでしょうか。
人によって意見はさまざまだと思いますけれど。
私は、入れた方がいいに決まっているけれど、必須ではないなあ、と思います。
これは、言うなれば気分の問題で、こういう写真(写真Aの下側CH2の波形)を見て、なんとなく気持ちが悪くなったら、なんとなく、(パスコンを)入れてしまいますが、それほど気持ちが悪くならなかったら、面倒くさいので、(パスコンは)入れないことにしてしまいます。
基本的に、IC(特にフリップフロップ、レジスタ、メモリ)のVddのラインのインピーダンスが高いところには必須、と思うことにしています。
●Vccラインの接続作業
さて、みつかってしまったIC181とIC194の、未接続のpin20は、このままにしておくわけにはいきません。
まことにお手数で申し訳ありませんが、Vddへの接続作業をお願いいたします。
●場所がわかるように、基板裏の写真です
今回作業をしていただくのは、基板裏、IC181のpin20の部分(赤丸印)です。
その部分を拡大しました。
赤矢印のスルーホールとIC181の20pinを接続します。
幸いこのスルーホールは径がやや大きいので、抵抗のリード線の切りくずをまっすぐに立てるように差すとうまく通ってくれます。
基板表に抜けるところぐらいまで通してから水平に折り曲げて、IC181のpin20にハンダ付けをします。
それからスルーホールの側もハンダ付けをします。
基板の裏側からハンダ付けをするだけでも、スルーホールを通って表側までハンダが流れてしっかりハンダ付けできてしまいます。
最後に余分なリード線をカットします。
基板表側の写真です。
ちょっとみにくいかも知れませんが、表側もちゃんとハンダがついています(赤矢印)。
気になったら表側からもハンダづけをしてください。
今回、このような大変なミスを、メールでご指摘いただいたYI様。本当に有難うございました。
心より感謝、御礼申し上げます。
今後ともよろしくお願いいたします。
●いつもご紹介させていただいているYT様のブログです
FIAT500と洗車の日々・・・(http://plaza.rakuten.co.jp/flyback/)
YT様には、CMA命令が、MYCPU80操作説明書に書いてある作業[10]のあとではテストできなくて、作業[11]のあとでなければテストができない、ということをご指摘いただきました([第355回])。
今回のブログでは、その説明書のミスを発見するまでの過程をこまかく説明していただいています。
最初はなぜCMAがうまく実行できないのかわからなかったけれど、ステップ動作をさせて調べてみたら、原因がどこにあるかがよくわかった、と書いてみえます。
こういうときにはステップ動作がとても便利ですと、しっかり「宣伝」までしていただきました。
YT様。いつもご紹介いただいて有難うございます。
今後ともよろしくお願いいたします。
2009.10.8upload
2009.10.9追記
前へ
次へ
ホームページトップへ戻る