MOSFETによるUSBからの電源供給のスイッチ

[Zynqberry](https://www.trenz.jp/aboutzynqberry.html)という、Raspberry Pi形状のZYNQボードがあります。
このボードは5Vの電源をUSBから給電するのですが、USBバスパワーのラインから基板全体の5Vのラインに向けて、下の図のような保護回路が入っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/093efa4e-3811-ea1d-486f-39537678ca67.png)

一見するとカレントミラーのように見えますが、そうではなさそうです。
この回路はどういう動作をするのでしょうか？

# PMOS FETの基本
PチャネルMOS FETは、PNPトランジスタと似たような動作をします。
G(ゲート)→B(ベース)、S(ソース)→E(エミッタ)、D(ドレイン)→C(コレクタ)と読み替えれば動作の雰囲気はわかります。
トランジスタとの大きな違いは、ドレインからソースに向けて寄生ダイオード(ボディダイオード)が入っていることで、この点は留意しておく必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/d9356483-86f0-e173-ed97-c01fe9bb9c37.png)


掲題の回路はMOS FETの3番ピンのゲートがLレベル(4番のソースよりも十分低い電圧)になったときにONするのだろうと考えられますが、2つのトランジスタは何をしているのでしょう。

## より簡単な回路で考えてみる
より簡単な回路で考えてみましょう。P-MOS FETが一つで、このような接続をしている回路です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/bd2c3677-150d-adba-9774-9964d1193cd8.png)

この回路はVinが、

* 0V以下ではOFF
* 0V～ある値(ゲートがONする)までは、V<sub>in</sub>-V<sub>F</sub> ※ダイオードの電圧降下分
* ある値以上では、Vout ≒ V<sub>in</sub>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/3ccede6a-a0e6-7466-8dea-d5bf2d14b526.png)
となります。

目的としては電源の逆刺しを防止するためのダイオードで、マイナスの電圧が供給された場合に保護するものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/6787a91b-aaa7-62df-33c6-8c6a7c54d5e2.png)
普通のダイオードだと常にV<sub>F</sub>の電圧降下を生じてしまいますが、MOS FETによるダイオードではVinが閾値を超えるとMOS FETがONするので、電圧降下が(ON抵抗×消費電流)となります。
ON抵抗が0.1Ω、電流が500mAとすると、50mVのロスで済むわけです。

## 逆流防止はできるか？
USBバスパワーの保護で大事なのは、システムの5VのラインからUSB側へ電流が逆流してしまうことを防ぐことです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/abb421e2-617d-3563-da8b-82e98aee7eff.png)
FPGA評価ボードなどではUSBバスパワーと、安定化電源からの電源をうまく切り替える必要がでてきますが、ダイオードでやると電圧降下が出てしまいます。

この回路は、Voutに5Vを供給した場合、ゲートはソースよりも十分に低電圧になるのでFETはONしてしまい、ソースからドレインに電流が流れます。つまり、逆流します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/bd2c3677-150d-adba-9774-9964d1193cd8.png)

次のグラフはVoutに電圧をかけていったときにVinにどう出るかを調べたものです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/a63aa4d6-9ba8-42c6-956f-649a50f307b9.png)
閾値より大きい場合は、Vin≒Voutとなり、逆流することがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/2c8b3a94-c3d9-3ada-6e03-ed06e3b91151.png)

P-MOS FETによる負電圧防止ダイオードは、電圧降下が少ないのですが、逆流は防げないという欠点があることがわかります。

※なお、負の電圧がFPGA評価ボードに加わった場合は、USBにも負の電圧が出てきてしまいまうが、おそらくすでに壊滅的なダメージが生じているのであきらめるのでしょう。

# 最初の回路
それでは、最初の回路に戻ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/a5c21204-323d-8959-a4ed-141dfef02c12.png)
ゲートの部分をVG、ベースの部分をVGとします。

Vinからの入力電圧を増やしていった場合のシミュレーション結果を示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542455/cd229dde-4e89-9739-3e3d-777551f85d9c.png)

これだけ見てもわかりませんので、式で考えます。

入力側のトランジスタQ1がダイオード接続なので、

* VB = Vin - 0.65　・・・(1)

は決まりですね。

右側のトランジスタQ2がONするかどうかは、VBとVoutの関係で決まり、

* もし、VB > Vout - 0.65ならば、トランジスタQ2はOFF

となります。

ここに(1)式を代入すると、

* Vin - 0.65  > Vout - 0.65ならば、トランジスタQ2はOFF
* ↓
* Vin > Vout ならば、トランジスタQ2はOFF

となります。

また、Q2がOFFするとVGは抵抗で0Vに引っ張られるので、MOS FETはONします。Q2がONするとVGはVoutとなるのでMOS FETはOFFします。

まとめると、

* Vin > Vout → MOS FETはON → Vout≒Vin 理想ダイオード
* Vin < Vout → MOS FETはOFF → 逆流防止

となります。

結論としては、USB給電用の **P-MOS FETによる理想ダイオード(電圧ロスのないマイナス電圧印加防止)**に、**システム側からUSB側への逆流防止機能を組み込んだ回路**だと考えられます。