シンクおよびソースI/O動作の基本的な説明については、
シンク型およびソース型デジタルI/Oの違いは何ですか?を参照してください。
シンク型の出力回路をシンク型の入力回路に接続する方法:
シンク型出力回路をシンク型入力回路に接続した場合、グランドと負荷はありますが電圧ソースがないため、電圧ソースが必要となります。この場合、プルアップ抵抗をI/Oの出力と電圧ソースとの間に接続します。この抵抗器がソース型のI/Oの代わりに電圧をもたらし、抵抗器があることで動作時にグランドへ短絡せずに済みます。下図は、シンク型同士の接続で抵抗器と電圧ソースの接続方法を示しています。
抵抗器は、次の2つの条件を満たす必要があります。まず、ラインがシンク型出力によってグランドに接続されているとき、抵抗器は適切な電流を流せる抵抗値とします。次に、シンク型出力がOFF(ラインに電圧がかかる)の場合に、抵抗器はグランドからラインを引くために十分低くなくてはいけません。以下に、この回路を使用する場合に必要な抵抗値の計算例を示します。この例では、電圧ソースが24 V、シンク型入力の入力抵抗(入力インピーダンス)が5 kΩ、抵抗器に流れる最大電流が20 mA、立ち上がりのしきい値が3 Vとします。
抵抗値の下限をオームの法則から計算します。
V = I * R
R = V / I
R = 24 Volts / 20 mA = 1.2 kΩ (抵抗値の下限)
分圧回路の計算式から抵抗値の上限を計算します。
Vn = 出力端の電圧
Vt = 電圧ソース
R1 = シンク型入力の抵抗値
R2 = プルアップ抵抗の抵抗値
Vn = Vt * ( R1 / ( R1 + R2 ) ) ← 分圧回路の式より
R2 = Vt * R1 / Vn - R1
R2 = 24 V * 5 kΩ / 3 V - 5 kΩ = 35 kΩ
したがって、この例の場合は抵抗値を1.2 kΩ~35 kΩの範囲から選定することになります。
メモ: High論理(1、True、ON)の場合、出力回路のトランジスタがONとなりデジタル出力はグランドに接続されます。この動作により、入力回路では電圧が0となります。出力がLow論理(0、False、OFF)の場合、回路はグランドから切り離され、電圧ソースからの電圧により入力回路では電圧が検出されます。すなわち、論理が反転します。出力が1の場合には入力では0を、出力が0の場合は入力では1を検出します。
ソース型の出力回路をソース型の入力回路に接続する方法
ソース型の出力回路がソース型の入力回路に接続する場合、電圧ソースが2つあり負荷が1つあります。入力がHighであるかLowであるかを判断するのは入力点での電圧レベルであるため、プルダウン抵抗が必要となります。2つの電圧ソースがあるのは問題となるため、デジタル入力の電圧ソースを以下の2つのいずれかで構成します。1つは、デジタル出力と同じソースを提供することです。これは下図に示すとおりです。
この場合は、プルダウン抵抗は、ソース型デジタル出力がOFFの際に、デジタル入力の電圧が論理Lowとなる抵抗値にする必要があります。デジタル入力の負荷抵抗を使用して、この値を計算します。さらに、抵抗はデジタル入力デバイスの電流制限を超えないような値にしなければいけません。
もう1つの場合は、完全にデジタル入力の電圧ソースを取り除くことです。これは下図に示すとおりです。
この場合、プルダウン抵抗は、ラインがソース型出力で電圧ソースに接続されている際、適切な負荷を提供するのに十分な値である必要があります。また、電圧ソースがデジタル出力に接続されていない際、抵抗器は"浮いている"(グラウドに接続されていない)状態とならない小さな値でなくてはいけません。デジタル入力には電圧ソースが存在しないので、抵抗値の上限はプルダウンしたラインからV+までトランジスタからのリーク電流を防ぐのに十分な大きさであれば問題ありません。この値はトランジスタのリーク電流により決定されますが、一般的には極めて小さい値であるためプルダウン抵抗は100 kΩ以下程度で十分となります。以下に、この回路を使用する際必要な抵抗値の計算例を示します。この例では電圧ソース24 V、抵抗器に流れる最大電流が20 mAとします。
抵抗値の下限をオームの法則から計算します。
V = I * R
R = V / I
R = 24 V / 20 mA = 1.2 kΩ(抵抗値の下限)
従って、この例の場合は抵抗値を1.2 kΩ~100 kΩの範囲から選定することになります。