google-site-verification: google3bd66dd162ef54c7.html
FC2ブログ

Arduino よもやま話-9 (UNOの電源切り替え回路)

◆まえがき
Arduino の互換機をいくつか買ったので、中の回路をいろいろ調べてみました。Arduino には UNO や Nano, Mini などがありますが、電源回路が少し違っているようです。
そういう中で、UNO が一番ちゃんと作り込まれていたので、今回その回路を詳しく調べてみました。なお、互換機の話から書き始めたのですが、以下の記事は主に UNO の純正基板の話になっています。

・UNO の基板の電源まわり
UNO基板の電源付近
USB と DCジャックのいずれからでも電源供給出来るようになっているので、部品の数が多いです。

◆電源の回路
UNOの公開されている回路図には当然電源の部分の回路も入っています。そこから電源の部分だけを抜き出したのが以下の図です。

・UNO の電源まわりの回路図
UNOのオリジナル回路図の電源部

これ、接続関係が記号で書かれている箇所が多くて、直感的に判り難いです。そんなことで、自分好みに書き直したのが次の回路図です。

・書き直した回路図
Arduino UNO の電源回路

◆回路の動作
左側から入る DCジャック (DC-IN) と USBからの電源は、A点でパラに接続されていて 5V電源を供給するようになっています。また、3.3V は 5V からシリーズレギュレーター (U2) を通して作られています。

上側の、DC-IN からシリーズレギュレーターを通って +5V を作るパスはごく普通の回路です。下側は USB からの電源供給回路です。実は私、この二つの回路をパワーFETでばっさり切り替えているのではないか思っていました。しかし、回路をよく見ると想像していたものとかなり違っていました。ということで詳しく動作を追っていきます。

◆ダイオードを使った場合の問題
手っ取り早くやるなら、USB の VBUS の +5V からダイオードを通して、回路図の A点に接続しておけばとりあえず大丈夫です。ただこうやると、電源電流がダイオードを通過するのでその Vf 分だけ電圧が下がってしまいます。ショットキーバリアダイオードを使っても 0.3V くらいのドロップがあるので、+5V 電源の電圧が +4.7V くらいまで下がってしまいます。

◆オペアンプとP-MOSFETで解決
そういう問題を解決するために入っているのが、オペアンプ (LM358) と P-MOSFET (FDN340P) の回路です。DCジャック側から電源供給が無い場合は、オペアンプの出力は LOW レベルになるので、P-MOSFET は ON になり USB から電源が供給されます。MOSFET の ON 抵抗は低い (数十mΩ) ので、ここでの電圧ロスは無視できるくらい小さくなります。

DCジャックの電圧が上がるとオペアンプの出力が 5V になるため、P-MOSFET は OFF になり、こちらのパスからの電源の供給は止まりそうです。しかし、FET にはパラにボディイダイオードが入っているので、そちらのパスを通って電源は供給されます。但し、ボディダイオードを通過するので電圧が 0.6V 下がり、こちらのパスからの電圧供給力は約 4.4V くらに下がります。

A 点はシリーズレギュレーター (U1) によって 5V に保たれているので、ここに 4.4V を供給しても電流は流れません。ということで、結局は USB からの電源供給は停止され、めでたく電源の切り替えが完了するという仕掛けになっています。

【2020/03/14追記】
コメントで、P-MOSFET(FDN340P)の向きは何でこうなっているの?という質問を頂いたので私なりのお返事を書きました。グッドクエッションでした。

◆切り替え電圧
この切り替えは コンパレーター (U5A) でやっていますが、その切り替え電圧は、ダイオード (D1) 通過後の電圧の 1/2 が 3.3V になった時に行われるので、大雑把には 7.2V 付近になります。

この 3.3V はロジック回路用に用意されているものですが、それをうまく流用しています。また分圧抵抗 (RN1A, RN1B) は同じ値の物で済むので実装コストを下げることが出来ます。ということで、うまい手を考えたものです。

実際の回路で切り替わりの様子を見てみると、7.22V で切り替えが始まり、7.41V で完了していました。オペアンプのゲインを考えると一気に切り替わりそうな気がしますが、実際には0.2V くらいの切り替え範囲がありました。

◆発振
この回路を見ていて心配になるのは発振です。何しろオペアンプの出力は A 点の電圧に影響し、オペアンプはそこから電源をもらっています。さらにはレファレンスに使っている 3.3V の電圧にも多少の影響があるはずなので、なんだか危なっかしい感じです。ということで、オペアンプの出力ピン (U5Aの1ピン) をオシロで見てみると、

・発振してました
発振している
電源の切り替え中はこんな波形になっていて、発振していました。周波数は約1500Hz です。この電圧が Low の時は USB からの電源供給が有効で、Hi の時は電源供給停止です。入力電圧を変化させると波形のデューティが変わって滑らかに切り替えが行われていました。ということで、発振しているものの問題無い、と言うか急な切り替えにならないので、かえって好都合なのかも知れません。

◆まとめ
あまり気にしないで使っていた UNO の電源切り替え回路ですが、調べてみると巧妙な仕組みになっていて感心しました。パワー FET が使われていることは認識していたのですが、これがダイオードの電圧降下をゼロにするためだけに使われていたとは、思ってもいませんでした。

ちなみに、Arduino Nano では USB からの電源供給はショットキーバリアダイオードを通すだけでやっているので、VCCの 電圧が 0.2-0.3V 程度下がった状態、つまり4.7~4.8Vくらいになっています。

・UNO の互換機の基板の電源まわり
UNO互換機の電源まわり
互換機にもいろいろありそうですが、この基板は、搭載されている部品を見る限りはオリジナルを再現して作られているようです。

・いたずら
USBから電源供給している状態で、DCジャックから 7V くらいの電源を供給した場合、両方のパスが生きているので並列運転状態になります。この時、USB の電源にダイソーの300円モバイルバッテリーを使うと、何とモバイルバッテリーが充電されました。

お!これ UPS になって具合いいじゃん、と思いました。ところが、DC ジャックからの電源供給を絶った瞬間に、モバイルバッテリーの DCDC コンが起動するのですが、そのタイムラグがあるのでしょう、電源が瞬断されるために Arduino にiリセットがかかってしまいました。これでは UPS として使うことは出来ないわけで、うまくいかないものです。
関連記事

コメントの投稿

管理者にだけ表示を許可する

FDN340P

最近Arduinoを試しています。
中華製ですと信じられないくらい安いので、もっぱらそちらです。
私はまだNanoしか持っていませんので、本記事を興味深く拝見しました。

そこで、この電源のFETの事ですが、電流の向きが反対に思えてなりません。つまりPMOSなので、この回路図どおりなら電流はDCINから入って5Vに安定化された後にFETを経由してUSBに出て行くという経路です。

USBからの経路ならS → D の方向ではないでしょうか。
Arduino megaの回路図を見ても同じでした。

その辺の所をできれば解説していただけませんでしょうか。

re:FDN340P

Nさん、もっともな疑問だと思うので、私の頭の中の整理を兼ねて説明してみます。ちょっと長くなりそうですがお付き合いください。

おっしゃっているP-MOSFETの使い方は、ハイサイドスイッチなどと呼ばれているオーソドックスな使い方です。

一方でソースとドレインを逆につなぐこともあって逆接保護回路が有名です。そのあたりの話は、こちらのURLに整理してあります。
http://radiopench.blog96.fc2.com/blog-entry-668.html

なお、MOSFETは逆接続してもトランジスタとしては普通に動きます。ただボディーダイオードがパラに入っているので、逆向きだとダイオードが導通しちゃって、0.6Vくらいしか逆電圧はかけられません。あとたぶん特性は少し悪くなる気がします。

さて、おっしゃっているように、USBコネクタ側にFETのソースを接続した場合を考えてみます。これは上の方に書いたハイサイドスイッチの使い方ですが、回路が定常状態ならこの使い方でも動くと思います。

しかし、以下のような場合の挙動が怪しくなると思います。

DC-INとUSBの両方から給電されていて、DC-INのジャックが抜かれたとします。
この時は、USB側に電源を切り替えるために、P-MOSFETのゲートを0Vにしないといけません。つまり、U5Aの出力がLOWにしないといけません。しかし、U5Aの電源はA点から取っているので、もたもたしていると電源が切れで動かなくなっちゃいます。
また電源の切り替えに成功したとしても、5V電源は瞬断するでしょうからCPUにリセットが掛かってしまいます。

他には、USBの電源だけ入れた場合を考えてみます。
この場合、P-MOSFETのゲート電圧が定まらないのでFETはONにならず通電されない恐れがあります。そうは言っても開始時のゲート電圧はゼロボルトでしょうから、通電に成功するかも知れません。もしそうやって通電に成功したとしても、オペアンプの電源が入って出力が安定するまで、どういう挙動になるか無保証です。この間でU5Aの出力がHigh側に振れたら電源が落ちてしまって、二度と入らなくなると思います。

頭の中で考えただけなのでこの通りにならないかも知れませんが、ともかく危険な感じがします。

そんなことを考えて、Arduinoの電源切り替え回路の P-MOSFETの接続の向きは逆になっているのだと思います。こうしておけば、USBの+5Vからボディダイオードを通じて必ず通電されるので変な状態には陥らないと思います。

こんなところです。間違いや、補足説明などがあれば詳しい方からの突っ込み歓迎です。

No title

ラジオペンチ様

さっそく解説いただきありがとうございました。逆説保護の使い方は知りませんでした。これはいいことを教えていただきました。

さて、この接続が元の設計の方針だとすると、ラジオペンチ様が書かれた外部電池の充電用というかUSBを電源出力とするための仕掛けというのが目的なのでしょうか。 

DCINから供給しているときはUSB端子に電源が出ていますよというように。そうでなければPMOSの代わりにショットキーダイオードで代替した方がロスが少ないように思えます。

さらにOPAMPはDCINが7.2Vを検出してなにをするのでしょうか?ハイサイドスイッチと言うことならば、DCINが下がったときにUSBへの供給をストップすることになりますでしょうか。

するとUSBの電源は両方向動作ということになるように思えます。

どうも、考えがまとまりませんで思いつくままに書いたので支離滅裂です。

再度解説いただけるとうれしいです。


以上を書き込んでから実験をしてみました。
逆接保護回路の部分です。FETは2SJ669。

それでやっと納得できました。ブログの回路図で言えば、USBの入力電圧を徐々に上げて行くとDS間の電圧がほぼダイオードのVfから急に1mV位に落ちます(GはGND)。

MOSFETの構造図をみれば理解できましたが、こんな使い方があるとは知りませんでした。得をしました。
ありがとうございました。


Nさん、おはようございます

書かれたコメントの前半は話が変な方に行ってしまってこれ以上のフォローは無理、と思ったのですが、実験して確認して頂いたようで良かったです。

この記事で言いたかったことは、◆まとめ に書いてありますが、
「UNOでは、電源の周り込み防止ダイオードのVfによる電圧の低下を無くすために、オペアンプとP-MOSFETを使った回路が追加されている。」ということです。
カレンダー
03 | 2021/04 | 05
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。
記事の内容のご利用は読者の自己責任でお願いします。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード