4558D が 2022年04月02日14時16分15秒 に編集
コメント無し
タグの変更
NE555
本文の変更
# はじめに 有名なタイマーIC「NE555P (以下、555と呼称)」はご存じだろうか。 記事執筆時点(2022年)から50年前に、シグネティクス社によって開発されたICで、たった数個の外付け部品だけで発振回路やワンショットタイマーとして活用できる往年の名作である。その歴史や利用方法については、Wikipediaをはじめとして、様々な解説ページがあるはずなので、そちらを参照いただきたい。https://ja.wikipedia.org/wiki/555_%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC 本記事では、私のツイッターアカウント[@electrotelecast](https://twitter.com/electrotelecast)のフォロワー数が555人を超えたことをきっかけに、フルディスクリートで555を組んだ。この555を無安定モードで動作させたところ、以下のツイートのようにLチカさせることができた。 本記事では、その設計過程や最終的に設計した回路を紹介していきたい。 @[twitter](https://twitter.com/electrotelecast/status/1484175383574757379?s=20) # 目標 以下の4点を目標として制作を行った。 1. 555の各内部ブロックをディスクリート部品で構築し、555の機能を再現する。 2. 手持ちの部品以外を使わない。 3. 回路シミュレータは使わない。 4. 以下のLチカ回路を動作させる。  単に555の内部回路を再現するだけなら、Wikipedia等に載っている内部回路通りに配線するだけで実現できてしまうが、それでは内部でどのような動作をしているのかがよく分からないまま、何となく動くものが完成することになりかねない。 そのような制作では、やっていても何も得られないし、何より面白そうに感じなかったので、このような回りくどい目標をあえて設定した。 2., 3.については、めんどくさいことは抜きに、とりあえず動くものを作ろうと思ったからである。また、555フォロー記念という邪な理由によって始めた制作であることもあり、さっさと作ってしまいたいと思ったのも理由である。 また、4.については、何か目に見えて動くものがあったほうがモチベーションになる、と考え目標として設定した。しかし、お気づきの通り1.が達成できれば、この目標は自動的に達成できる。 なお、このLチカ回路におけるLEDオン時間$T_{ON}$およびオフ時間$T_{OFF}$は、 $$T_{ON} = ln(2) \cdot 10uF \times (20k\Omega + 20k\Omega) = 0.27[sec]$$ $$T_{OFF} = ln(2) \cdot 10 uF \times 20k\Omega = 0.14[sec]$$ と計算できることから、発振周期は$T=0.27+0.14=0.41$[sec]、発振周波数は$f=1/T=2.40$[Hz]と見積もられる。 目標が達成できれば、1秒に2~3回ぐらいの周期でLチカするはずである。 # 555のディスクリート化 ## 内部回路とその機能の確認  内部回路は、上図のように5個の機能ブロックに分かれており、それぞれ以下の機能を果たす。 ①抵抗分圧:VCC-GND間の電圧を3分割し、コンパレータの基準電圧を与える。 ②コンパレータ:外部接続されているコンデンサの電圧やトリガー電圧を抵抗分圧と比較し、H/Lロジックで出力する。 ③RS-FF:コンパレータの出力に応じて、出力端子の電圧レベルとディスチャージトランジスタのON/OFFを決定する。 ④出力バッファ:RS-FFが決定した電圧レベルを出力する。大電流を引く場合も出力を保ち続ける必要があり、実はかなり重要な回路である。 ⑤ディスチャージトランジスタ:On時に外付けコンデンサの電荷を放電する。 これらのブロックを、ディスクリートの抵抗やトランジスタを組み合わせて再現することができれば、555として発振回路を動作させることが可能になるはずだ。 ## まずはズルして組んでみる 手始めに、上記の内部ブロックに相当するものを組み合わせることで、555として機能するかどうかを確認した。 いきなりディスクリートで組むのは難易度が高いため、ズルをして、つまり、ICをフル活用して内部ブロックの機能を再現した。 ①抵抗分圧: 100kΩ抵抗×3 ②コンパレータ: LM358 (オペアンプ) ③RS-FF: NANDゲートを組み合わせることで実現 ④出力バッファ: ③の出力を利用 ⑤ディスチャージトランジスタ: 1kΩ抵抗 + 2SC1815 以上をブレッドボード上で組み合わせることで、下図のような試作機を作成した。 この試作機でLチカ回路を作成し、Lチカできることを確認した。  @[twitter](https://twitter.com/electrotelecast/status/1483071750363836419?s=20) ## 各ブロックのディスクリート化 前セクションでズルをしたことで、内部ブロックの機能を実現できれば、555として動作可能であることが確認できた。 本セクションでは、各ブロックのディスクリート化について検討したい。①抵抗分圧と⑤ディスチャージトランジスタについては、すでにディスクリート部品のみで組まれているため、試作機のものを踏襲する。②コンパレータ、③RS-FF、④出力バッファについては、検討の末、以下のような回路を用いることにした。 ### コンパレータ 555のブロックの中で、おそらく最も重要なブロックである。ここの実現方法に思い至らなかったら、おそらくフルディスクリートは考えず、試作機のみの制作で終わっていたと思う。 当初、実現方法がさっぱり思いつかなかったのだが、ふと、トランジスタ3石でコンパレータを組んでいるツイートを見たことを思い出して自分のアカウントのいいね欄を漁り、超真空管([@PC980186](https://twitter.com/PC980186))様のツイートを探し当てた。 @[twitter](https://twitter.com/PC980186/status/1464977063018856450?s=20) ブレッドボード上に組んで軽くテストしたところ、コンパレータとして正常に動作することを確認できた。 シンプルな回路構成で手持ちの部品で組めることもあり、この回路を使わない手はないと考え、ツイートの回路をそのまま採用させていただいた。 ### RS-FF RS-FFは、その名の通り、R(リセット)とS(セット)によって出力Qを決めるフリップフロップである。試作機で組んだNAND型では、その真理値表は以下のようになる。 | $S$ | $R$ | $Q$ | $\bar{Q}$ | 状態 | |:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---| | $L$| $L$ | $Q$ | $\bar{Q}$ | 現在の出力を保持 | | $L$ | $H$ | $L$ | $H$ | リセット ($Q=L$) | | $H$ | $L$ | $H$ | $L$ | セット ($Q=H$) | | $H$ | $H$ | $X$ | $X$ | 不定 (禁止入力) | この回路は、NANDゲートを組み合わせて実現する、という説明がよくなされるが、同等の機能を実現するならもっと簡単な回路で十分である。ここでは、NPNトランジスタによる双安定マルチバイブレータを基に、スイッチ部分をPNPトランジスタQ3, Q4に置き換え、トランジスタ4石の回路を考案した。これにより、コンパレータの出力信号で動作するRS-FFとなる。ブロック単体でテストした結果、正常に動作することが確認できたため、RS-FFは以下の回路を使う。  ### 出力バッファ 試作機では、NANDゲート自体に出力バッファが内蔵されていたため、回路として特に何かを加える必要はなかった。しかし、フルディスクリート化を考えたとき、RS-FFに20kΩの抵抗を使用したことから、RS-FF単体でLEDを光らせることは難しいと判断し、出力バッファを搭載することにした。 回路構成は、TTLのインバータである7404の内部等価回路をほぼそのまま使わせていただいた。トランジスタについては2SC1815を使い、抵抗については、等価回路の値そのままか、手持ちがない場合は近い値のものを使用した。ブロック単体でテストした結果、正常に動作することが確認できたため、出力バッファは以下の回路を使う。  ## 555全体のディスクリート化 前セクションで作成した①~⑤のブロックを組み合わせ、最終的に以下の回路図のようなフルディスクリート回路を組んだ。最終的に、トランジスタ15個、抵抗18本のそこそこ規模の大きい回路になった。 この回路に発振周期を決める抵抗・コンデンサを接続し、Lチカ回路を作成してテストした。その結果は記事冒頭のツイートに示す通りである。


# ICとの比較 ICの555でも同様のLチカ回路を組み、オシロスコープで発振波形を比較したところ、今回組んだフルディスクリート555での発振周波数は、ICのものよりも高かった。(黄色:ディスクリート555, 水色: IC555)  この原因を探るため、Lチカ回路の発振周波数を決める、10uFのコンデンサの端子電圧を確認した。 その結果、ディスクリート555ではコンデンサの端子電圧が落ち切っておらず、これが発振周期を早める原因となっていることを確認した。   # おわりに 以上から、フルディスクリートで555を組みLチカさせることに成功した。 しかし、実際のICと比較したときにいくつか課題を抱えている。最後に達成事項と今後の課題をまとめる。 ==達成できたこと 1. 555の内部ブロックをディスクリート部品のみで再現し、555の機能を(一部)再現できた。 2. 手持ちの部品のみで制作できた。 3. 回路シミュレータは使わず制作できた。 4. Lチカ回路を動作させることができた。== ++今後の課題 1. 計算での想定よりも発振周期が短い。 2. 単安定モードで正常に動作しない。 3. 部品数削減の余地がある。++ # 謝辞 本記事の執筆にあたり、超真空管([@PC980186](https://twitter.com/PC980186))様には快くツイートの掲載許可をいただき、深く感謝いたします。 また、フルディスクリート555制作過程で、フォロワーの方々をはじめとする多くの方に反響や助言をいただきましたこと、この場をお借りしてお礼申し上げます。