ファームウェア／ソフトウェアエンジニアが知っておきたい電気設計の基礎知識【デジタル回路編②】

# デジタル論理に影響を与える電気回路パーツ

“[デジタル回路編](https://qiita.com/Nnu/items/b120aa169b7e6eb5cac8)” で回路上でのデジタル信号のやり取りの仕組みについて話しました。

今回は、デジタル値を決める要素の一つである電気回路の代表的なものを紹介します。
デジタル化された”0”や“1”(デジタル値)のことを「**論理**」と言います。
さらに、"0"のことを「Low(略して LやLo )論理」、"1"のことを「High(略して H や Hi )論理」と言ったりします。
また、デジタル信号が伝播する回路のことを「**信号ライン**」と言います。

実は信号ラインの論理を決めるのは両端の部品だけではありません。
信号ラインの電気回路でも、論理が決定されたり、反転したりします。
最終的な信号ラインの論理は、信号ラインの電気回路と両端の部品の論理制御の組み合わせで決まります。

<img width="400" alt="スクリーンショット 2022-09-29 17.12.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219768/3d789125-6acf-eb06-aaad-1426d694a8bd.png">

恐らく、FWエンジニアはMCUのGPIO制御を実装するので、ICなどの部品が論理を制御するイメージはある程度つくと思います。
ただ、電気回路を介した時にどういう論理が相手の部品に到達するのかが、回路図を見てもわからないという方がいると思います。
そこで今回は論理に影響を与える電気回路のパーツをご紹介して、簡単な電気回路の信号ラインなら論理がどうなるかわかるようにできたらと思っています。

# 代表的な電気回路パーツ

電気回路上でよく見るのは以下の3種類だと思います。意外と少ないです。（多分ｗ　他にあれば連絡ください。追加します。）

- プルアップ、プルダウン (Pull Up, Pull Down)
- ローサイドスイッチ (Low Side Switch)
- ハイサイドスイッチ (High Side Switch)

これらを組み合わせた回路も出てきたりますが、基本パーツとしては上記の3種類かなと思います。

## プルアップ、プルダウン (Pull Up, Pull Down)

最も単純な回路パーツで、これ以降のパーツの基礎にもなります。

- プルアップ：
信号ラインをある電源電圧と繋げた回路です。
抵抗を介して電源電圧と繋げることが多く、この抵抗のことを「プルアップ抵抗」と言います。
プルアップは、その信号ラインの論理を「<font color="red">**Hi**</font>」にする方向に作用します。

    ※厳密には「繋がった電源電圧がデジタル信号を受け取る部品のVIHを超える電圧であれば」という条件付きです。
ただ、プルアップがあるということは、電気設計的にその信号ラインをHiにしたい意図があるはずなので、その条件をわざわざ確かめなくても、「プルアップは信号ラインの論理をHiにする方向に作用する」と考えて良いです。
    

- プルダウン：
信号ラインをGNDと繋げた回路です。
抵抗を介してGNDと繋げることが多く、この抵抗のことを「プルダウン抵抗」と言います。
プルダウンは、その信号ラインの論理を「<font color="blue">**Lo**</font>」にする方向に作用します。

<img width="400" alt="スクリーンショット 2022-09-29 17.17.40.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219768/f7d9f05f-57ad-d17d-8ce4-85592517b4ca.png">

## ローサイドスイッチ (Low Side Switch)

ローサイドスイッチとは、回路パーツの出力に対してローサイド、つまりGND側にスイッチング素子が配置された以下のような回路です。
スイッチング素子として、代表的なものにバイポーラトランジスタを使ったデジタルトランジスタ(通称デジトラ)とMOSFETがあります。
部品の詳細についてはここでは避けますが、この回路図のスイッチはINPUTの論理に対して表のように導通/非導通が切り替わります。
そのため、INPUTに対してOUTPUTの論理が反転します。

また、後述のハイサイドスイッチとはスイッチング素子の種類が異なるので注意です。

<img width="500" alt="スクリーンショット 2022-09-29 17.20.51.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219768/97954106-2971-79fb-fac4-b3d86379aef3.png">

この回路はHi論理の電圧を変換するために使われることが多いです。
INPUTのHi論理が3.3Vだったとして、OUTPUT側のプルアップを1.8Vにすることで、OUTPUTのHi論理の電圧を1.8Vにすることができます。
(Lo論理はINPUTもOUTPUTもGND電圧で同じです。)

## ハイサイドスイッチ (High Side Switch)

ハイサイドスイッチとは、回路パーツの出力に対してハイサイド、つまり電源電圧側にスイッチング素子が配置された以下のような回路です。
この回路図のスイッチはINPUTの論理に対して表のように導通/非導通が切り替わります。
そのため、INPUTに対してOUTPUTの論理が反転します。

<img width="500" alt="スクリーンショット 2022-09-29 17.21.57.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219768/6071d21c-203b-21d4-0e83-268cbdf453b1.png">

この回路はモーターやLEDなどの部品への電源制御回路に使われたりします。
ローサイドスイッチでも同じような電源制御は可能で、実際によく使われますが、安全性の面でハイサイドスイッチを使われることがあります。
ローサイドスイッチとハイサイドスイッチの使い分けに関しては、後述の[参考資料 2.](https://analogista.jp/highside-sw/)を参照してみてください。

## オープンドレイン・オープンコレクタ (Open Drain, Open Collector)

上記のローサイドスイッチ、ハイサイドスイッチのプルアップ、プルダウンを除いた部分の回路パーツに名称があります。

- バイポーラトランジスタを使用した場合：**オープンコレクタ**
- MOSFETを使用した場合　　　　　　　：**オープンドレイン**

バイポーラトランジスタ、MOSFETにはそれぞれ以下の名称を持つ3端子があります。

- バイポーラトランジスタ：ベース、コレクタ、エミッタ
- MOSFET　　　　　　　：ゲート、ドレイン、ソース

バイポーラトランジスタ、MOSFETの各種類における3端子位置関係は以下の表内の回路図の通りです。
この回路パーツはHi / Loどちらかの論理にしか制御せず、コレクタもしくはドレイン側の制御しなかった方の論理はOUTPUT側の電気回路に任せるような動きをします。
中でもLoにしか制御しないオープンドレインは、IC部品の内部回路として使われることが多く、データシートに出てきたりするので覚えておいて損はないと思います。
(データシートの端子説明の項で、「Loアクティブのオープンドレイン出力」と記載があったらこれです。)

<img width="600" alt="スクリーンショット 2022-09-29 17.26.14.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219768/a7cfea48-bbda-c5f5-7152-91397bf560b0.png">

# 参考資料

1. [マイコン周辺のハードウェア基本回路【初心者・未経験者必見】](https://depfields.com/mc-circuit/)
2. [ハイサイドスイッチについて解説【仕組みや回路、使い方】](https://analogista.jp/highside-sw/)
3. [北陽電機 NPN/PNPオープンコレクタ出力](https://www.hokuyo-aut.co.jp/products/data.php?id=121)