担当授業のこととか,なんかそういった話題。

主に自分の身の回りのことと担当講義に関する話題。時々,寒いギャグ。

NANDゲートを設計する。

2013-02-17 23:55:08 | 工作・実習
昨年の今頃は,都内でも所によって(というか,僕が住んでいる地域では)雪が降ったらしい。

昨日は今年一年の冷え込みではないかと思う,冷たい風が強く吹き付ける寒い一日だったが,今日は風がそれほど強くない分,ましである。

僕が小・中学生の頃にお世話になった思い出深い本の一冊に,誠文堂新光社の『カセット・ケース・クラフト』がある。
当時発行されていた月刊誌『初歩のラジオ』に掲載されたシリーズから,好評だった記事をまとめたものである。
家にあるはずだが,どこにあるのか見当がつかないので,地域の公立図書館で借りることにした。
ところが,初めに行った図書館の書庫に見当たらないと言われ,仕方がないので,確実に所蔵されていることが判明した,さらにそこから徒歩で40分かかる市境の図書館に行った。
閉館ギリギリに到着という,かなりきわどい行程だった。

無事,当初の目的通り『カセット・ケース・クラフト』を手に入れ,さっそく中身を見てみたのだが,いくつかの点で記憶違いがあったことがわかった。

一つは,電源はたいてい6Vにしていたということである。このところ3Vの電源にこだわっていたのは『カセット・ケース・クラフト』に載っている作品がそうだったからと思い込んでいたのだが,大きな勘違いだった。
というわけで,3Vにこだわる理由が消滅したので,6V派に鞍替えしようと思っている。

もう一つは,デジタル回路において NAND ゲートが4つ入ったCMOS IC,4011 が多用されているという印象を抱いていたのだが,そうではなかった。もっとマニアックな感じの,シュミットトリガ NAND の 4093 が多用されていたのである。

この本を手に入れた今(もちろん,自分のものになったという意味ではなくて,借りて手元にあるというだけだが),当時主流だった 4093 などを,現在主流らしい 74HC シリーズの CMOS IC に置き換えた回路に(必要があるなら)修正して組み立てたいと思っている。ただ,これらの本の作品を作ろうと思ってコツコツためた古い CMOS IC を使って,昔ぜひとも作ってみたかった作品をまずは実際に組み立てることから始めるつもりである。

ところで,この本のタイトルにある『カセット・ケース』とは,今では別のメディアにとってかわられてしまった,昔懐かしいカセット・テープのケースのことである。そのケースを電子工作用のケースに流用して,片手に収まるような小さな電子おもちゃを作ろうというわけである。実用志向の作品が中心だが,ピンポンゲームやもぐらたたきといった,子供心を刺激する回路も充実しており,小・中学生のころの僕の電子工作への夢や憧れを大きく育んでくれた本であった。
この本に対する熱い思いや思い出はいずれ書き記したいと思う。


と,この記事のタイトルとはほとんど関係ない話から初めて,いいかげん前置きが長くなり過ぎたが,ここらで本題に入ろう。

電子回路シミュレータ TINA の存在を教えてくれた,小峯龍男氏の『改訂版 デジタル回路の「しくみ」と「基本」』(技術評論社)をパラパラめくって,現在特に強く興味を抱いている記述を漫然と眺めているのだが,pp.48--55 に,ダイオードを使った AND 回路と OR 回路,そしてトランジスタを使った NOT 回路が紹介されている。けれども残念ながら,NAND 回路までは紹介されていなかった(もしかすると付属 CD のサンプル回路にはあるのかもしれないが)。

とはいえ,AND ゲートの出力に NOT ゲートをつなぐか,あるいは2つの入力をどちらも NOT ゲートで論理値を反転させてから OR ゲートに入力するか,どちらの方法によっても NAND ゲートが構成できるので,そういう素直な発想に基づいて回路を組み,TINA-TI でシミュレート(回路中のスイッチの開閉を変え,その都度 DC解析を実行)してみた。

その結果,多少の紆余曲折はあったものの,無事,どちらの流儀でも NAND ゲートらしく動作する回路を作ることができた。

真の目標は T フリップフロップを構成し,それをいくつもつなぎ合わせることで2進カウンタを作ることである。『改訂版 デジタル回路の「しくみ」と「基本」』には基本的なフリップフロップたちが紹介されているものの,基本ゲートをどう組み合わせて T フリップフロップが作れるかについては述べられていない。各種フリップフロップの解説をよく読んで理解した上で自分で考えればよいかもしれないが,現在の僕の実力ではかなり時間がかかりそうな気がする。

そんなときは他の本をあたってみるのが定石であろう。僕の手元には,二十数年前に購入したと思われる逆瀬川皓一朗氏の『ディジタル回路の基礎と応用』(日本放送出版協会)という,お子ちゃま用ではなくて大人向けの参考書があるので,それを見てみた。この本の p.68 に,まさに僕が望んでいた,NAND ゲートを2つ用いた T フリップフロップの回路の実例が掲載されていた(実はスイッチのチャタリング防止回路の一例もそのページにある)。しかし,実に悩ましいことに,当時 CMOS と共によく使われていた TTL と呼ばれるタイプのICで組んだ回路であり,別のページにはちょっと違ったバージョンの CMOS の回路例があるものの,ちょっと改造して使ってみようという際にどうすればよいのか,やはりよくわからない。

それはともかく,NAND ゲートを2つ組み合わせた T フリップフロップの設計法がわかったので,トランジスタ4石を用いた T フリップフロップが作れそうな気がする。そしてこの T フリップフロップは双安定マルチバイブレータと非常によくにた動作をするものであるから,もしかするとトランジスタは半分の2石で済むのかもしれないが,それについてはおいおい調べることにしよう。

ぼちぼちアキバに繰り出すべき時が近づいているようだ。というか,もう我慢できないので,ともかく一度行って来ようっと。そうすれば気分もちょっとは落ち着くことだろう。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

カウンタの使い道。

2013-02-17 13:48:03 | 工作・実習
日本語プログラミング言語『なでしこ』で超シンプルなカウンタが作れてしまったので,わざわざ電子工作としてハードで実現する必要がなくなってしまった。

そのため,カウンタを作るための動機がなくなるところであったが,少し異なる方向に話を発展させることにした。

もともと2進数で数を表示するという,これまたシンプルなカウンタを作るつもりだったが,いっそのこと n 進カウンタを作ることにしてはどうかと思ったのである。

発端は集計のためにカウンタが欲しいということだったのだが,n 進カウンタに至っては本気で数をカウントしたいわけではなく,n 進法を教える際の教材として使用しようと目論んでいるのである。

実際に僕自身が誰かに n 進法を教える予定があるわけではないが,このように目的を設定すると,ちょっとやる気が出てくる。

もしうまく作れたら,人に見せた時に単なるカウンタを見せた時よりも面白がってくれそうである。

十進BASICや『なでしこ』でも類似のカウンタをソフトとして作ってみようと思うが,ともかくどのような機能とインターフェイスを持ったものにするかの仕様が肝心である。

デジタルICで実現するには,シフトレジスタを使うのが手っ取り早そうである。

しかし,n 進数の各桁を何でどう表示したものか。あれ,結構難しいぞ,これ。

できれば16進モードも実装したい。

7セグメントLEDを使った場合,「十」に相当する数字 A の表示は問題ないが,「十一」を表す数字 B を表現しようと思うと困ってしまう。大文字の B は数字の 8 と同じになる。小文字の b にしたら,数字の 6 と紛らわしい。
「十二」の C は大文字でも小文字でもいけるだろう。「十三」の D は小文字の d にすればいいし,「十四」の E と「十五」の F も問題ない。

というわけで,数字の 6 と小文字の b の区別をつけることにすれば,なんとかなりそうではある。

ちなみに,今年の干支である「巳」も7セグメントLEDで表示できるということに気づいた(右下のハネは割愛するとして,だが)。「巳」の文字が流れたりあちこちで点滅したりする楽しいディスプレイを作ったら面白そうだなぁ。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする