図2は、外部機器からの出力を、オープンコレクタを介してマイコンの入力端子で受け取るための回路です。
右側の入力部に外部機器の出力を接続して、その信号のオン/オフの状態をマイコンの入力端子によって受け取る設定です。
外部機器からの出力をマイコンなどの入力端子で受け取る際に気を配らなければならないのは、マイコンの入力端子の耐圧と外部機器の出力の電位です。外部出力の電位がマイコンの入力端子の耐圧を上回る場合、何らかの方法で耐圧内に収める必要があります。
また、外部出力のハイ状態の電位がマイコンの入力端子がハイと判断する電位を下回る場合は閾値を超えるように電位を上げてやる必要があります。本来なら、そのあたりの調整はレベルシフターというデバイスを用いることが多いのですが、今回は汎用の小電力用トランジスタ1個でオープンコレクタの回路を構成することで、これらの機能を実現する例を紹介します。
まずは、外部機器の出力がマイコンの入力端子の耐圧を上回る場合について考えてみましょう。例えば、外部機器の出力が5Vでマイコンの入力端子の耐圧が3.3Vとします。このように入力電圧が入力端子の耐圧を上回る場合、直接接続することはできません。マイコンの入力端子周りの回路に損傷を与える可能性があるので、耐圧を上回らないようにする必要があります。
図2のVCCにはマイコンに電源を供給しているプラス電位を与えます。マイコンの入力端子は高い抵抗値を持っていますので、R2の抵抗値は数k〜数十kΩで十分です。また、R1の抵抗値の決め方ですが、外部機器の出力電流を下回る抵抗値より大きな値にする必要があります。例えば、出力電圧5Vで最大出力電流が20mAとすると、その抵抗値は5÷0.02で200Ω以上の抵抗値に設定する必要があります。
抵抗の最小値はこれでいいとして、最大値はどのような基準で設定すればいいのでしょうか。そこには外部機器とマイコンの入力端子までの信号線の距離と消費電力のトレードオフが関係してきます。マイコンと外部機器の間の距離が長くなると当然その信号を伝達するケーブルも長くなり、ケーブルが長くなればその分、途中でノイズが乗るリスクも多くなります。そのような場合、なるべくR1の抵抗値を小さくしてノイズが乗りにくくします。ただしこの場合、外部機器の消費電力は大きくなります。このあたりは、どのような信号線を使っているかなど機器が設置されている環境も影響してきます。
例えば、工場内で大容量のモーターや電磁機器が多くあるような場合は通信路にノイズが乗りやすいのでR1の抵抗値をなるべく小さくする必要があります。逆に、通信路が短い場合や電磁ノイズの発生源のないところでは抵抗値を大きくして、外部機器の省電力化を図ることができます。いずれも経験や現場での調整でそのあたりを見極めるしかないですね。
次に、外部機器の出力電圧がマイコンの入力端子の耐圧より低い場合について考えてみましょう。ここでは、外部機器の出力が3.3Vでマイコンの入力端子の耐圧が5Vとします。
このように外部機器の出力がマイコンの入力端子の耐圧より低い場合、マイコンの入力端子に直接外部機器の出力を接続することは可能です。マイコンに電気的損傷を与えることはありませんが、外部出力がハイの場合でもマイコンの入力端子の閾値を超えないことがあり得るのでハイとローの判断が不安定になる可能性があります。そこで、オープンコレクタを用いて適切な電圧に調整する必要があります。
この場合、図2のVCCにマイコンに電源を供給しているプラス電位を与えることが重要です。これによって、外部機器のハイ/ローの出力値に合わせてマイコン入力端子の電位をフルスケールでスイングさせることができます。R1とR2の抵抗値については、先述したトレードオフが生じるので、それを考慮して決定してください。
今回はオープンコレクタを用いたマイコンと外部機器の接続や、電圧の調整、R1とR2の抵抗値に関するトレードオフと最適値を見いだす勘所などについて説明しました。楽しんでいただけたでしょうか。次回も組み込み技術者にとって基本になるノウハウを解説していきたいと思います。お楽しみに!
Copyright © ITmedia, Inc. All Rights Reserved.