【発振回路も解説】タイマーIC 555の動作原理と使い方 | アナデジ太郎の回路設計

【発振回路も解説】タイマーIC 555の動作原理と使い方

回路設計

この記事でわかること

・555の種類と特長
・タイマー、発振器としての使い方
・その他の利用方法(ドライバなど)

タイマーIC NE555(1972年発売)は50年以上の超ロングセラー品です。

このICは、タイマーや発振器として使うのが本来の用途ですが、
非常に安価(数十円程度)であることから、
内部回路のコンパレータやフリップフロップだけを利用しても、十分に元がとれます。

また、出力電流が大きいことから、FET等を駆動させるドライバICとしても使えます。

本記事では、タイマーIC 555の3つの使い方
(タイマー、発振器、ドライバ)について解説します。

<注意点>
本記事で解説するタイマーICの使い方は一般的な内容です。

各メーカーで仕様が異なっており、
ここで紹介する方法が適切で無い場合がある為、
使用の際は、デバイスのデータシートを必ず確認して下さい。

555の種類と特徴

タイマIC 555には、バイポーラトランジスタで構成されるバイポーラタイプと、
後から登場したMOSFETで構成されるCMOSタイプがあります。

2つのタイプの主な相違点は以下になります。

出力電流を除き、CMOSタイプの方が優れています。

また、あとで説明しますが、
CMOSタイプの方がタイマ時間や周波数の設定範囲を広くとれます。

両タイプとも、出力電流が比較的大きいですが、
これは流すことができる電流値であって、その時の出力電圧まで保証していません。

例えば、バイポーラタイプであるNE555でVcc=5Vの場合、
Hレベル出力電圧VOHは出力電流100mAで、2.75Vまで低下し、
Lレベル出力電圧VOLは出力電流8mAで、0.4Vまで上昇してしまいます。

つまり、出力電流を多く流す分、H出力電圧の降下・L出力電圧の上昇が大きくなり、
出力相手先がH/Lレベル判定できなくなる恐れがあります。

このため、TTLレベル(VOH:2.4V以上、VOL:0.4以下)を満足させるには、
出力電流を小さくする必要が出てきます。

この時、Lレベルで出力できる電流は8mAと、かなり小さくなってしまうので注意が必要です。

このことは、CMOSタイプでも同様であり、
3.3V電源でも動作できますが、Vccが低いと、出力できる電流は更に小さくなります。

各メーカーから発売されている555を以下に示します。
また、各タイプにはタイマ回路が2個入りの製品もあります。

<バイポーラタイプ>
1回路:NE555(TI)、LM555(TI ※1
2回路:NE556(TI)

<CMOSタイプ>
1回路: ICM7555(Intersil、アナデバ)
    LMC555(TI ※1
    TLC551、TLC555(TI)
    MIC1555、MIC1557(microchip) 
    TS555(ST) 
2回路: ICM7556(アナデバ)
    TLC552、TLC556(TI)
    TS556(ST)
 
TI   :テキサスインスツルメンツ
      ※1:ナショナル・セミコンダクターだったがTIに吸収
Intersil :インターシル(ルネサスの子会社となっている)
アナデバ:アナログデバイセズ
microchip:マイクロチップテクノロジ
ST   :STマイクロエレクトロニクス

Amazonを見ると、コピー品と思われる製品が沢山出てきます。

555の内部構成と動作原理

NE555のピン配置と内部回路を示します。

抵抗値R(NE555の場合は5kΩ)が3個直列接続され、
コンパレータ2個(COMP1,2)とRS-FF(フリップ・フロップ)、
オープンコレクタ出力(DISCH)と、プッシュプル出力(OUT)から構成されています。

コンパレータは+入力と-入力を比較し、
電圧が高い方が+ならH、ーならLを出力します。

RS-FF(フリップ・フロップ)は本来、
R(リセット)が来たらL、S(セット)が来たらHを出力しますが、
出力は反転論理の/Qなので、リセットで出力H、セットでLです。

プッシュプル出力OUTは、H入力でL出力、
L入力でH出力される反転(インバーター)回路になっています。

プッシュプルについては下記記事で解説しています。

これによって、タイマICの出力OUTは、
リセットでL出力、セットでH出力されます。

オープンコレクタ出力DISCHのトランジスタTRは、
リセットでオン(DISCH端子がGNDショート)
セットでオフ(DISCH端子オープン)します。

オープンコレクタについては下記記事で解説しています。

また、このRS-FFは強制リセット(RESET)が付いていおり、
RESETがLになると、他の入力に関係なく、タイマICの出力がLになります。
(優先度:RESET>S>R)

入力信号は以下の4つです。

TRIG(トリガ)
入力電圧がCONT電圧/2以下(1/3×Vcc)になると、
COMP2の出力は、-入力より+入力の方が高くなるので、Hになります。

これにより、S入力がHになるので、RS-FFはセット状態となり、
OUTはH出力、DISCHはオープン状態になります。

THRES(スレッショルド)
入力電圧がCONT電圧以上(2/3×Vcc)になると、
COMP1の出力は、-入力より+入力の方が高くなるので、Hになります。

これにより、R入力がHになるので、RS-FFはリセット状態となり、
OUTはL出力、DISCHはGNDショートされます。

但し、TRIG入力がある場合は、S入力がR入力よりも優先されるので
THRES入力は無視されます。

RESET(リセット)
Lレベルにすると、他の入力信号に関係なく、RS-FFが強制リセットされるので、
OUTはL出力、DISCHはGNDショートされます。

CONT(コントロール)
外部から電圧を入力、又は抵抗を接続することでCONT電圧を調整できます。
(つまり、COMP1,2の閾(しきい)値電圧が変更可能)

CONT端子に外部から電圧を入力する場合は、抵抗分圧したものを直接接続すると、
555の内部抵抗とで分圧されるため、CONTへの入力電圧が低下してしまいます。

そのため、オペアンプを用いたボルテージフォロワを使い、
出力インピーダンスを十分小さくすることで、
分圧の影響を無くし、入力電圧の低下を防止
します。

CONT電圧を調整するもう一つの方法として、
図の様に抵抗Rcを接続することで内部抵抗との分圧比を変えて電圧を調整します。

例えば、Rc=10kΩを接続すると、
閾値電圧がTHRESが1/2×Vcc、TRGが1/4×Vccになります。

何も接続しない場合は、CONT電圧は2/3×Vccなので、
閾値電圧はTHRESが2/3×Vcc、TRGが1/3×Vccになります。

通常、CONT端子は使わない事が多いですが、
その場合、ノイズによる誤動作を防ぐため、バイパスコンデンサを接続します。
 (0.01uF~0.1uFのセラミックコンデンサを使用)

出力信号は2つです。

OUT(出力)
 RS-FFの/Q信号の論理を反転した信号が出力されます。
 (RS-FFがリセットされるとL、セットでHが出力)

 プッシュプル回路によって、
 100mA~200mAの比較的大きな電流を出力できます。

 
DISCH(ディスチャージ)
 オープンコレクタ出力になっており、
 /QがLでTRがオフ、Hでオンします。

 従って、RS-FFがリセットされると、DISCH出力がGNDにショートされ、
 セットでオープンとなります。

このICは3つの動作モードを持ちます。
・単安定(モノステーブル)モード(タイマとして使用)
・無安定(アステーブル)モード(発振器として使用)
・双安定(バイステーブル)モード(ドライバ等に使用)

次に各モードの動作について説明します。



単安定モード

Monostable(モノステーブル)モードとも呼ばれ、
安定状態が1つあることを意味し、
出力Lが安定状態で、出力Hが不安定状態になります。

つまり、出力L状態は外部から信号を加えない限り、そのまま維持しますが、
出力H状態は時間が経つと、L状態になってしまう事を意味します。

この特徴により、一定時間だけH出力するタイマとして使用できます。
※別名:ワンショットモードとも呼ばれます。

タイマー動作

・初期状態
 RESETがLレベルの時、RS-FFが強制リセット(/Q=H)されるため、
 DISCHがGNDショートとなるので、コンデンサCの電圧は0Vとなり、
 タイマ出力OUTはLです。

 その後、RESETをHにしても、THRESは0Vなので、RS-FFのR入力はL、
 TRIGはプルアップされているのでS入力もLとなり、
 リセット状態を維持するので、OUTはLのままです。

・タイマー開始
 TRIGをL(1/3×Vcc以下)にすると、RS-FFがセット(/Q=L)されるので、
 OUTはHになります。(タイマー出力開始)

 また、DISCHがオープンになるので、コンデンサCは抵抗RAを経由して
 電流が流れ込むことで充電され、THRES電圧が上昇していきます。

 その後、TRIGをHにして、RS-FFのS入力がLになっても、
 R入力がH、又はRESET入力がLにならない限り、
 セット状態を維持するので、OUTはHのままです。

・タイマー終了
 THRES電圧が上昇し、Hレベル(2/3×Vcc以上)になると、
 RS-FFのR入力がHになるので、RS-FFがリセット(/Q=H)され、
 OUTがLになります。(タイマー出力終了)

 また、DISCHがGNDショートすることで、コンデンサCの電圧は0Vに低下し、
 THRES電圧がLレベルになるので、R入力はLになりますが、
 R-FFの出力はそのままの状態(/QがH)を維持するので、OUTはLのままです。

タイマー時間の設定

タイマー出力OUTがHである期間(タイマー時間)は
THRES電圧が2/3×Vccになるまでの時間になります。

THRES電圧はCRA直列回路に電圧Vccを印加し、
時間tが経過時のコンデンサ充電電圧になります。

V(THRES)=2/3×Vcc になる時の時間tがタイマー時間になるので、

になります。

タイマー時間tは時定数CRAの1割増程度なので、
時定数CRA≒タイマー時間
と考えることができます。

以上から、計算上は、タイマー時間はCとRAだけで決まりますが、
実際には温度や電源電圧による変動が僅かながら存在します。

タイマーの精度

タイマーの精度については、NE555のデータシートを見ると、
単安定モード時の初期精度が最大3%となっています。

この精度は555単体での値であり、抵抗やコンデンサの精度による影響を受けます。
精度1%の抵抗、5%のコンデンサにした場合、10%程度の精度になります。

このため、正確なタイマー時間を設定したい場合は、
図のように可変抵抗VRを追加する
ことで、調整することができます。

しかし、先ほど述べたように温度や電源電圧による影響を受けるため、
VRで調整しても、周囲温度の変化や電源電圧の値によって、
タイマー時間は変動してしまいます。

この変動の大きさは、それぞれ温度安定性電圧安定性として定義されています。

NE555の場合、温度安定性は平均50ppm/℃です。
つまり、1℃で0.005%変動するので、使用温度範囲を0~60℃とした場合、
使用時の周囲温度によって、タイマ時間は約0.3%違ってきます。

電源安定性は最大0.5%/Vとなっています。
これは、タイマー動作中の電圧変動ではなく、
555の電源電圧を5V~15Vの間で設定した場合のタイマー時間への影響を示すものです。

つまり、Vccの設定電圧を1V変えた場合、タイマ時間が0.5%変化することを意味します。

例えば、使用する電源の仕様が5V±5%なら、
Vccの設定電圧に0.5Vの差が生じるため、タイマ時間は0.25%変化します。

但し、これはタイマ動作(コンデンサ充電期間)中にVccが変化しないことが前提です。

動作中にVccが変動すると、タイマー時間は大きく変動していまいます。

このため、出力変動の少ない電源を使用すると共に、
電源ピン(1-8ピン間)にバイパスコンデンサC1を入れて電源を安定化させます。

(0.01uF~0.1uFのセラミックコンデンサを使用)

タイマー時間の設定範囲

タイマー時間を長くするには、CやRAを大きくする必要がありますが、
RAを大きくした場合、充電電流が小さくなり過ぎると、
回路の漏れ電流によりタイマが正しく動作しなくなります。

回路の漏れ電流とは、THRES入力に流れ込む電流と、
コンデンサの漏れ電流になります。

THRES入力はコンパレータに入力されているので、
理想的には入力インピーダンス無限大で入力電流ゼロなのですが、
NE555の場合、スレッショルド電流として定義されており、
THRES入力に0.25uA流れ込みます。

このため、例えばRAが20MΩだとすると、電圧降下が20MΩ×0.25uA=5Vとなります。

これによって、Vcc=15Vの場合、THRES電圧が10Vまで低下してしまい、
THRES入力がHレベルとなる閾値の2/3×Vcc(つまり10V)を超えることができず、
タイマーが終了できなくなります。

また、Cを大きくした場合、
100μFを超えてくると電解コンデンサを使う必要が出てきますが、
コンデンサの漏れ電流が大きい(数十uA程度)ため、
充電電流が小さいと、充電電圧の上昇に影響が出ます。

逆にタイマー時間を短くするには、CやRAを小さくしますが、
RAが小さすぎると、TRがオン時に過大電流が流れてICが故障します。

以上の理由から、NE555のデータシートを見ると、
RAが1k~10MΩ、Cが0.001u~100uFで設定されており、
タイマー時間は10us~10sが推奨範囲となっています。

また、LMC555などのCMOSタイプの場合、
スレッショルド電流が10pAと、バイポーラタイプに比べ桁違いに小さく、
漏れ電流による影響が小さくなるため、タイマー時間を長くできます。

TRIG入力について

TRIGがLになり、タイマーが開始されると、
その後、TRIGがHやLに変化しても、タイマー動作に影響しません。

このため、タイマー出力中に再度、TRIGがLになっても、
タイマー時間は延長しません。

この特徴は、TRIG入力をスイッチで行う場合、チャタリングが発生しても
タイマー動作に影響しないという利点になります。
※チャタリング:信号がH/Lにバタつく現象のこと

しかし、TRIGがLのままだとRS-FFをリセットできないため、
タイマー出力OUTがLに戻らなくなります。

また、NE555のデータシートを見ると、
タイマ時間終了の10us以上前にTRIGをHにしておくこと」と記載があります。

従って、TRIGのL期間は、「タイマ時間(1.1CRA)ー10us」以内にする必要があります。

一方、TRIGがLと認識するのに必要な最小L期間ですが、
CMOSタイプのLMC555では20nsとされています。

バイポーラタイプのNE555には記載がありませんが、
低速動作のため、それよりも十分長い時間が必要です。
(2us程度あれば十分と考えます)

以上の様にTRIG信号のL期間は制約があることから、
TRIGへのL入力を押しボタンスイッチにした場合など、
L期間がタイマー時間より長くなる恐れがある場合、
微分回路を使って、TRIG信号のL期間を短くします。

この回路の動作ですが、SWをオンして、SETが0Vになると、
R3を経由してC3が充電されることで、TRIG電圧は上昇します。

このTRIG電圧がHレベルとなる1/3×Vccまで上昇する時間tは
以下の式で求まります。

この時間が2usより長く、
タイマー時間(1.1CRA)-10usより短くなるようにR3,C3を設定します。

その後、SWをオフし、SETがHになった瞬間、
HレベルであるTRIG電圧にC3の充電電圧Vcc分上昇することで
2×Vccとなり、TRIGに過電圧が入力されてしまいます。

これを防ぐため、D1によるダイオードクランプを設けることで、
TRIG電圧がVcc以上にならないようにします。
(実際はD1の順方向電圧VF分、上昇します)

RESET入力について

タイマー期間中にRESETをLにすると、
タイマーは強制終了(出力L)します。
(TRIG入力があっても無視されます)

RESETのLレベル電圧はTRIG電圧のLレベルと違い、電源電圧Vccとは無関係で、
NE555の場合、0.3V以下でL、1V以上でHレベルになります。

RESTをLレベルにするのに必要なリセット電流は最大1.5mAと比較的大きいため、
REST信号を出力するICのLレベル出力電流(シンク電流)が十分あるものを選びます。

また、電源投入時のRS-FFの状態(リセットorセット)は未定なので、
TRIG入力が無くてもタイマー出力OUTがH出力される恐れがあるため、
起動時はRESETをLにして、リセットさせる必要があります。

このため、図のようなパワーONリセット回路を設けることで、
電源投入時のタイマー誤出力を防ぐことができます。

電源投入時のRESETがLである期間をtとすると、

時定数R4,C4は電源の立上り時間より十分長くなるように選びます。
ここでは、R4 :10kΩ C4:0.1uF  とすると、
t=60us
となり、起動から60usはRESETがLレベルになります。  

CONT入力について

CONT端子に外部から電圧Vcを入力することで、
タイマー動作中にタイマ時間を電圧制御できることから、
PWM出力回路として利用することができます。

また、発振器モード時は、電圧で周波数を制御できるので、
VCO(電圧制御発振器)やFM(周波数変調)回路に応用できます。

しかし、CONT電圧ータイマ時間・周波数特性が直線的でないため、
調整がし難く、調整幅も小さいです。

また、CONT電圧を変えると、
TRIG入力の閾値も同時に変わってしまうので注意が必要です。



無安定モード

Astable(アステーブル)モードとも呼ばれ、
安定状態が無いことを意味し、
出力L及びH共に不安定状態になります。

つまり、出力LとH状態共に外部から信号を加えなくても、
一定時間が経つと、もう一方の状態に移ってしまう事を意味します。

この特徴により、一定時間毎にHとLに切替わる発振器として使用できます。

発振器動作

・初期状態
RESETがLレベルの時、RS-FFが強制リセット(/Q=H)されるため、
DISCHがGNDショートとなるので、コンデンサCの電圧は0Vとなり、発振器出力OUTはLです。

・動作開始
その後、RESETをHにした時、THRESとTRIG入力が0Vなので、
COMP1はL、COMP2はHが出力され、RS-FFはセット状態になります。

出力OUTはH、DISCHのトランジスタTRはオフとなります。

これによって、VccからRA,RBを経由して電流がCに流れることで充電され、
C電圧は上昇していきます。

C電圧が1/3×Vccを超えるとCOMP2はLになりますが、
COMP1もLのままなので、RS-FFは変化せず、C電圧は上昇を継続します。

・出力切替(H→L)
C電圧が2/3×Vccを超えるとCOMP1はHになるため、
RS-FFはリセットされるので、OUTはLとなり、DISCHがGNDショートとなります。

この時、タイマー動作時と違い、RBがあることで放電電流が制限されるため、
C電圧はすぐ0Vとならず、徐々に下降していきます。

・出力切替(L→H)
C電圧が1/3×Vccを下回るとCOMP2はHになるので、
RS-FFは再びセット状態になり、OUTはH、DISCHはオフになります。

以上から、C電圧は1/3×Vccと2/3×Vccの間で上下変動し、
OUTはH/Lを繰り返し出力することでクロック出力になります。

また、RESET入力をLにすると、発振器は強制的に停止します。

H期間とL期間について

OUTがHである期間は、初期状態(C電圧が0V)からの1回分を除き、
C電圧が1/3×Vccから2/3×Vccまで充電されるまでの時間tHとして、以下の式で求められます。

L期間は、C電圧が2/3×Vccから1/3×Vccまで放電されるまでの時間tLとして、
以下の式で求められます。

つまり、H期間tHは、RAがある分、L期間tLよりも長くなります。

RA=0にすれば、tH=tLで50%DUTYになりますが、
DISCH出力がオンするとVccがショートとなり、過大電流が流れてICが壊れるため、
この回路では50%DUTYにはできません。

周期TはHとL期間の合計なので、
  T=tH+tL=ln2×(2RB+RA)×C≒0.69(2RB+RA)×C
周波数fは
  f=1/T=1.44/[(2RB+RA)×C]
になります。

上記の式より、周波数やDUTYはRA、RBとCで決まりますが、
タイマー動作と同様、実際には温度や電源電圧によって変動します。

周波数の精度と設定範囲

周波数の精度については、
NE555のデータシート(前述した「タイマー時間の精度」参照)を見ると、
無安定モード時の初期精度が2.25%となっており、
単安定モード(タイマー動作時)の1%に比べ劣っています。

また、温度安定性や電源安定性も単安定モード時より悪く、あまり高精度にできません。

設定範囲は0.1~10kHz程度と、デジタル回路としては低速です。

50% DUTY発振器

上記で説明した通り、先程の基本回路ではONデューティーを50%にできません。

50% DUTYのクロック出力が必要な場合、
以下の回路がデータシートに記載されています。

(動作は確認していないので、精度や安定性については不明です)

この回路はダイオードD1,D2を追加することで、
C充電時にVccからの電流がD1を経由することでRBが無視できます。

これにより、H期間の式にRB=0を入れると、
tH=0.69×(RA+RB)C=0.69RAC
となります。

L期間はtL=0.69RBC なので、
RA=RBにすれば、tH=tLになり、
50% DUTYとなります。

D2を設ける理由は充電時にD1の順方向電圧VF分、低下するので、
放電時もD2を経由させてVF分低下させることで、HとLに差が生じない様にしています。

もう一つの50% DUTY回路は、CMOSタイプの555で使用できます。

この回路はクロック出力に使用していたOUTをCの充放電に使用し、
DISCHをオープンコレクタ出力として利用するため、プルアップ抵抗をつけます。

CMOSタイプである理由ですが、出力電流が小さければ、
OUT電圧がVccから0Vまで出力できるからです。

バイポーラタイプだと、出力電圧がTTLレベルなので、
H出力がVccより低く、L出力は0Vより高くなるため、この回路に向きません。

CMOSの場合、OUT端子のH出力電圧は、ほぼVccなので、
RCを経由してCが充電されるので、H期間tH=0.69RcCとなります。

OUT端子のL出力電圧は、ほぼ0Vなので、RCを経由してCが放電されるので、
L期間tL=0.69RcCとなることから、tH=tLとなり50% DUTYとなります。



双安定モード

Bistable (バイステーブル)モードとも呼ばれ、
安定状態が2つあることを意味し、
出力がH状態とL状態が共に安定を保ちます。

つまり、外部から信号を加えない限り、
出力がH、もしくはL状態のままであることを意味します。

このモードは、555をタイマーや発振器としてではなく、
コンパレータやフリップフロップ等の
内部回路の機能を利用したい場合に使います。

例えば、THRESとTRIGを接続し、入力として使うと、
シュミットトリガ・インバータになります。

シュミットトリガについて説明します。

通常のIC入力は、閾値を基準にして、
入力信号が高ければHレベル、低ければLレベルと判断しますが、
入力電圧が閾値付近をふらつくと、Hレベルになったり、
Lレベルになったりすることで、出力がバタついてしまいます。
(信号がH/Lにバタつく現象をチャタリングと呼びます)

シュミットトリガは、Hレベルと判断する閾値と、
Lレベルと判断する閾値が異なります。

これによって、一度Hレベルになったら、
入力電圧が少しくらい低下してもLレベルになりません。

逆にLレベルになったら、
Hレベルにするには十分に入力電圧を上げる必要があります。

そうすることで、入力電圧が多少ふらついても、
出力がバタつかなくなり、チャタリングの発生を防止できます。

このシュミット・トリガ・インバータの出力ですが、
OUT端子とDISCH端子の2つが利用できます。

OUT端子の方はプッシュプル出力なので、出力電流を多く流すことができます。
(バイポーラタイプで200mA、CMOSタイプで100mA)

このように出力電流が大きいことから、リレーやLED等を直接接続して制御したり、
FETを駆動させるドライバICとして使えます。

ドライバ出力が1点だけ必要な場合、これを使えば、
複数出力を持つトランジスタアレイを使うことなく、小型で無駄の無い回路を構成できます。

但し、本記事の最初で説明しましたが、出力電流が大きいと出力電圧が低下し、
相手先のICが、H/Lレベルを正しく認識できない場合があるので注意が必要です。

もう一つの出力であるDISCH端子はオープンコレクタ出力なので、
別電圧+Vでプルアップすることにより、
Vccとは別の電圧レベルで信号を出力できます。

相手先の入力電圧レベルに合わせられる

但し、DISCH端子は本来、タイマー時間を決めるコンデンサ充放電回路用であり、
出力として使用することを前提としていないので、
データシートに出力電流や電圧の規定が記載されてない場合が多いです。

NE555のデータシートにはDISCH端子のオン電圧規定時の条件として、
Vcc=5V、8mA としていることから、
OUT端子と違い、大きな電流は流せないです。

次にフリップフロップとして使う場合です。

TRIGとRESETをプルアップすることで、それぞれが、
ローアクティブ(Lで有効)のセット入力、リセット入力になります。

この時、RS-FFのもう一つのリセット入力Rを無効にするために、
THRESはGNDに接続します。

出力OUT及びプルアップされたDISCH出力は、
セット入力でH、リセット入力でLとなります。

セット、リセット同時入力の場合はリセットが優先されます。

一度、セット又はリセットされると、
入力がHに戻っても、出力はそのままの状態を維持します。

以上のように、双安定モードは、
タイマICをシュミットトリガやフリップフロップとして使えますが、
入力の論理レベルがTTLレベルでないことや、動作速度が遅いといった欠点があります。

以下の記事で、半田付けのコツや部品の外し方を解説しています。

工作時に役立つ工具類を紹介しています。