TD4製作(9)

DIPスイッチを4個追加しました。ところがここで問題発生。
先日、0〜3番地のDIPスイッチを付けたときは正しく動作していた0番地の信号が、74HC540に伝わらなくなっていました。
配線がショートしたところはないし、テスターで測ってみてもおかしくないようだし、これはDIPスイッチかダイオードが壊れたかなと思い、一旦、配線を外してDIPスイッチとダイオードを取り替えてみました。
結果は同じで、また0番地の信号は通りません。他の番地の信号は全部正しく出ているのに...。
他の番地の信号が出ているのだから、74HC540の故障とは考えにくいし、何しろ、一度はちゃんと信号が出たことを確認しています。
うーーん。困った。
「もう一度この1列の配線をやり直してみようかなぁ。この前は確かに動いたのにぃ...。(T_T)」とブツブツ...。

ということで、1列、全部配線を取っ払ってしまいました...。
ビニル線が硬くて配線がやりにくいなぁというのは常々感じていたので、思い切って本に書いてあるの(AWG22)よりも細めの(AWG28)のビニル線を使ってみました。ふむ、こっちのほうがやりやすい。

そしてもう一度、ICを載せて電源を入れてみました。

...。
うー、やっぱりだめだぁ。orz

どうしても0番地のデータの信号が出ていないのです。ROMのデータは74HC540を通り反転されて出てきますが、この信号をLEDで点くようにしたので、ROMのスイッチの1つをONにすれば、該当のLEDが1つ点くはずなのです。
74HC154から出ているROMのアドレスを指定する信号(LOW)はちゃんと出ていました。ところが、0番地のDIPスイッチに繋がる信号は、1番地のDIPスイッチに繋がる信号よりも電圧が高かったのです。でも1番地のDIPスイッチのところへ0番地の信号をつなぎ変えてみると、ちゃんと動きました。信号がちゃんと出ているのに、繋ぐ先のDIPスイッチを変えると挙動が変わってしまうということで、やっぱり0番地のDIPスイッチのところに問題がありそうです。

基板を舐めるように眺めていたら、0番地のアドレスを示すところにつけたLEDのGNDに繋がるビニル線の被覆がめくれていました。そしてその線は、隣接した+5Vの電源パターンのところに接触してしまっているようでした。
もしや、と思いこの線を取り替えてみると、0番地のデータもちゃんと送られるようになりました。

あれだけ悩んだのに、解決するときはなんとまぁ、あっけないことでしょう...。
「部品の故障よりも、配線の間違いを疑え」ということが身に染みた一日となりました。

 TD4製作(8)

kacky12252005-02-08


ここ数日、ROM部分の作業に取り組みました。全部で16個DIPスイッチを取り付けなくてはいけないのですが、大変なのでとりあえず4個だけ。
4個だけでも、配線の取り回しがかなり面倒でした。配線が階段状に積みあがっています。これを後12個分やるのかと思うと...、ちょっとぞっとします。

どうにか配線が終わったので、ICを差さない状態で、ショートしている箇所が無いか、各ICの電源ピンが確実に5VもしくはGNDに繋がっているかテスターでチェックしました。
その後、全部のICをソケットに差しました。

そしていよいよ電源ON。このとき、ROMはすべてスイッチOFFの状態でつなぎ、プログラムカウンターがきちんとカウントしながらLEDが点灯する状態を確認しました。ROMのアドレス指定のLEDもきちんと順番に点灯しました。

本当は、順番に確認していかないといけないのですが、早くLEDをチカチカ点けたい衝動にかられ、とりあえず各レジスタと出力ポートのLEDが点くようにROMのスイッチをセットしてみました。ところが上手くいかない。自分では、AレジスタのところのLEDが点くつもりでセットしているはずなのに、出力ポートのところが点いてしまったりする...。
配線は付けるたびに回路図とテスターで確認したはずですが、どこか間違ってしまったのだろうか...。基板の裏を見てみますが、当然ごっちゃりと配線があり、今更これを直すのかと思うと...。

少し休憩して、改めて「CPUの創りかた」のROMのところの説明を読み返してみると、どうも私は、ビットの配列と、ROMのDIPスイッチの数字の並びの対応を勘違いしていたようでした。MSBが、DIPスイッチの「1」に相当すると思っていたので、全然違う命令を与えていたことになっていたようです。
一時は、ROMの配線をすべて外してやりなおさなくてはいけないのかと焦りましたが、間違ったことをしなくてよかったと思いました。

気を取り直して、もう一度LEDを点けるようにDIPスイッチをセットしてみました。
以下がそのプログラム(って言うほどのものでは全然ないですが。)です。

0000 MOV A,1111
0001 MOV B,1111
0010 OUT 1111

単純に、Aレジスタ、Bレジスタ、出力ポートに「1111」を出力するだけです。
写真がこれを実行した結果です。見難いですが、黄色がAレジスタ、緑がBレジスタ、赤が出力ポートのLEDです。

このほかにも色々パターンを試して遊びました。
とりあえずまともに動いているようなので、なかなかうれしいものです。本末転倒な気もしますが(^^;)、追って、本に書いてある動作確認手順もやってみようと思います。

今後の予定としては、

1. 残りのDIPスイッチの取り付け・配線
2. ブザーの取り付け(74HC04、ブザーON・OFF用スイッチ)

のつもりです。
あまり時間が空いてしまうとほったらかしになりそうなので気をつけます。
ラーメンタイマーの完成も、先が見えてきたかな。

 TD4製作(7)

kacky12252005-02-04


どうにか、あとはROM部分を残すのみ、というところまでこぎつけました...。
私は「より線」の導線を使っているのですが、被覆を剥いて、ネジって、先端にハンダメッキをして、を繰り返しているうちに指先の感覚がなくなってきてしまいました。単線(という言い方でいいのかな?)があるなら、そっちにすればよかったかも。
あ、CPU部分の各信号につけるLEDの配線を一部残してあります。明日、また(笑)秋葉原に行って、追加でLEDを買ってきます。全部で、緑、赤、青、白、ピンク、黄を使う予定です。
裏側の配線、ケーブルの重なりにより、所によっては1.5cmくらいの厚みになってしまいました。基板には1cmの高さの脚をつけていたのですが、箱に収めるとしたら2cm以上の脚に付け替えないといけませんね。
そのうち100円ショップに行って、箱を見繕ってくるつもりです。当初はクリアファイルくらいの厚みでOKかと思ってましたが、「お道具箱」サイズでないと入らないかも。

 TD4製作(6)

kacky12252005-02-02


大分できてきました。見難いですが、写真は、創り終わったところまでをピンクで塗りつぶした回路図です。
回路図通り、順序よく作っていくつもりでいたのですが、結局、導線の取り回しを考えていると、「おや、こっちを先につないだほうがいいなぁ」というところが出てきて、あちこちばらばらにつないでいくことになってしまいました...。
回路図にはないLED(各レジスタやプログラムカウンターなどの信号を示す)をたくさんつけたので、その配線もあり、もう基板の裏はスパゲッティ状態です。
もう、とことんまでやってやろうと思ってます。最初、全部安い赤LEDで終わらせようと思ってましたが、青とか白とかピンクとか、ちょっと高いのもじゃんじゃん使うことにします。

 TD4製作(5)

kacky12252005-01-30


配線案を紙に描いていたらこんがらがってきたので、とりあえず回路図を全部色鉛筆で塗り分けてみました。どれがどこに繋がるのか、ちょっと分かりやすくなった気がします。
塗り分け後、実作業に移りました。細かい配線は紙に描くのはもうあきらめましたが、部品の配置図だけは描いたので、基板を裏から見たときのICの脚の番号がすぐ分かるので便利だと思いました。
配線は、数色のリード線を使い分けしてみています。ちょっとリード線が硬いので、複数の線が重なるところなど、取り回しが大変です。
リード線の長さを測り、被覆を剥き、ハンダ付けし、チェッカーで確認する、の繰り返しなので、飽きます...。今、集中的にやっているのは、74HC161が4つ並んでいるところなのですが、関係の無いところに抵抗などの部品を先に付けてしまっていたりします。リード線が入り組んでいるうちに、これらの部品が取り付けられなくなってしまうのではないか、と危惧しているということもあり、少しは意味のある作業かな...。
まだまだ先は長い...。

 TD4製作(4)

kacky12252005-01-18


CPU部分の配線図を紙に書いていましたがちょっと飽きてきたので、「電源パターンの強化」というのをやりました。基板上に、くし型に並んでいるパターンの、くしの先をビニール線につないでいくのですが、1ヶ所につき2本のビニール線をつながなくてはならないので手こずりました。それと、電源が入っていることを示すLEDの追加、気まぐれに4つのICソケットと、それのパスコンを追加しました。
その後、改めてクロック信号が何Hzで出ているのか、確認してみました。1分間に55回点滅しましたので、約0.9Hzということでしょう。ちゃんと1Hzにするには、可変抵抗を用いればよいそうです(参考:http://www.scn.tv/user/takahisa/td4/td4kai.html)。完成して余力があったらやってみようかな。

 TD4製作(3)

クロック&リセット回路がうまく動作しない件ですが、原因が分かりました。お粗末すぎて笑われてしまうような原因です...。

この回路は、5Vの安定化電源を供給することで動作するように設計されているのですが、私が繋いでいたACアダプタは、15Vのものだったのです。秋月のPICライタ用(http://d.hatena.ne.jp/kacky1225/20041204)の。スイッチングACアダプタはそれしか持ってなくて、特に電圧を確認しないで使ってしまっていたのでした...。
ここで74HC14のデータシートを参照してみますと「広動作電圧範囲 2〜6V」とありましたから、規定電圧の3倍の電圧をかけてしまったわけで、おそらく74HC14は壊れてしまったでしょう...。
静電気については、気を付けていたんですけど(ICに触る前に、必ずスチールの棚を触ってました)、まさかACアダプターを確認していなかったとはね。^^;

今日、銀座に行く用事があったので、ついでに秋葉原に行って、5Vのスイッチング式ACアダプタとICを買ってきました。
帰ってきてから、早速、先日と同じように各信号の出る先にLEDを繋いでみました。
「おお!点いた!」
クロックの切り替えも、オートorマニュアルの切り替えも上手くいきました。リセット信号もきちんと出ていました。
ずいぶん時間がかかってしまいましたが、とりあえず第一関門突破という感じでしょうか。次は、CPU部分に取り掛かります。