MENU

本当は怖いArduino電源回路 ~ArduinoとPCを壊さないために知っておいてほしいこと~


Arduino UNO互換機を作ろうと思って回路を読んだところ、よく見るとちょっと危ない電源回路になっていることがわかりました。

少し使い方を誤ると、Arduino本体だけでなくUSB接続したPCやACアダプターを壊しそうです。

今回はArduino UNO 電源回路の怖いよポイントを三つと、どうすればArduino本体やUSB接続したPCを壊さずに済むかを紹介します。

Arduinoのデータシートを読んで使ってるから大丈夫だよ!という方も是非読んでほしいです。
データシート通りに使ってても、避けられないポイントもあるので。

【結論】ここが怖いよポイント三つ

まずは結論から。
ここが怖いよポイントは三つです。

  • VIN端子と一緒にACアダプターかUSBを使うとVIN側の電源が壊れるかも
  • USBと一緒にACアダプターかVIN端子を使うとUSB機器が壊れるかも
  • 11.4V以上のACアダプターを使用するとArduinoが壊れるかも

順番に解説していきましょう。

Arduino UNOの回路図

まずは全体の回路図を見ておきましょう。
Arduino UNO (R3)の回路図はこちらで公開されています。

https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf

そして問題の電源回路は上のほうのここら辺

Arduino UNO電源回路

この電源回路に怖いよポイントが三つ隠れているわけです。

Arduinoの電源の取り方三種類

怖いよポイントの前に、Arduinoの電源の取り方について書いておきます。

電源の取り方は次の三つの方法があります。

  • USBから取る
  • ACアダプターをDC JACK(回路図のX1)に挿して取る
  • VIN端子に電源をつないで取る

怖いよポイントは、主にACアダプターかVIN端子を使うときに発生します。
では、順番に説明していきます。

VIN端子と一緒にACアダプターかUSBを使うとVIN側の電源が壊れるかも

一つ目の怖いよポイントはDC JACKとVIN端子周辺回路にあります。

DC JACK(X1)とVIN端子間に注目するとダイオード(D1)が間に入っており、VINからDC JACKへの逆流を防いでくれています。

じゃあ逆方向はというと、何もないです。

なので、DC JACKとVIN端子を併用するときには注意が必要で、VINがOFFの時やDC JACKの電圧>VINのときはVINに電流が逆流してきます。
といことで、DC JACKとVINは基本的には併用しないほうがいいです。

加えて、VINとUSBの併用も危険です。
リニアレギュレータ(U1)の出力側に5Vがありますが、この5VはVINがOFFのときはUSBから供給されます。

VINがOFFでUSBから電源供給されてる状況だと、U1があるので一見5VからVINには電流が来なさそうですが、罠です。

U1にはOUTからIN方向に保護ダイオードが内蔵されているため、普通にVINに逆流してきます。

ONSEMI NCP1117データシート p.10 (https://www.onsemi.com/pdf/datasheet/ncp1117-d.pdf)

ということで、VINとUSBの併用もやめておきましょう。

USBと一緒にACアダプターかVIN端子を使うとUSB機器が壊れるかも

二つ目は一つ目と似てますが、これはUSB側が壊れるかもという問題なのでホント気を付けましょう。
USB電源としてPCを使ってると、PCが壊れる可能性があるので。

で、問題個所はここです。

これは、コンパレーター(U5)でDC JACK≒VINの電圧を見てUSB側の電源を使うかVIN側の電源を使うかFET(T1)で切り替えてる感じの回路ですね。

VIN/2と3.3Vを比較して、VIN/2>3.3V、つまりVIN>6.6VならFET(T1)がOFFになってUSB側に5Vが逆流しないようになります。

一方で、Arduinoのデータシートを見ると、VINは6V~20Vって書いてるっぽいんですよね。

Arduino UNO R3 データシート p.4 (https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf)

6.6V以下ではFET(T1)はONなのに。

例えば6VのACアダプター使ったらFET(T1)が導通するわけです。
これだとUSB機器も一緒に使ってる場合はUSB機器に電流が逆流しかねない状態です。

特に電源OFFのUSB機器がつながった状態で6.6V以下のACアダプターとか使ったらかなりまずいですね。
USB機器壊れるかもです。

USB機器に電源入ってる状態なら問題じゃないかもですが、それでもUSB規格的にはミニマムで4.75V出力だからよくないです。

ということで、ACアダプターは8V以上くらいのものを使いましょう。
ギリギリ攻めて7Vとか使うとダイオード(D1)の電圧降下と部品のばらつきでFET(T1)がONになるかもなので。

まあ、できればUSBとACアダプターは併用しないでおきましょう。

11.4V以上のACアダプターを使用するとArduinoが壊れるかも

三つ目の問題個所もここです。

これは単純な話で、VINの電圧によってはコンパレーター(U5)の絶対最大定格超えます。

TI LMV358 データシート p.5

絶対最大定格が5.7Vなので、VIN/2 > 5.7V -> VIN>11.4Vでアウトです。

20V?

ご冗談でしょう、Arduinoさん

ちなみに、この件はこちらのスレッドでも議論されていましたのでご紹介。
Question Regarding Vin Pin of Arduino | All About Circuits

ということで、二つ目も考慮すると、ACアダプターは8V~11Vくらいのものを使いましょう。

じゃあどうすればいいか

改めて、Arduinoの電源回路の怖いよポイントは次の三つです。

  • VIN端子と一緒にACアダプターかUSBを使うとVIN側の電源が壊れるかも
  • USBと一緒にACアダプターかVIN端子を使うとUSB機器が壊れるかも
  • 11.4V以上のACアダプターを使用するとArduinoが壊れるかも

この三つの怖いよポイントを考えると、Arduino本体やUSB機器を壊さないには次の二つを守ればよいかと思います。

  • VINとACアダプターとUSBのどれか一つだけを使う
  • ACアダプターは8V~11Vくらいのものを使う

もしくは、

  • 電源回路に対策が入っているArduino互換機を使う

というのも一つの手です。
例えば、UniversALDUINOはArduino本体やUSB機器が壊れないように設計されているArduino互換機の一つです。
geekyfab.com

最後に

Arduinoは素晴らしいプロジェクトですが、電源回路はかなり危なっかしい作りになっていました。

電子工作は自己責任の部分が大きいとはいえ、ユーザーに厳しすぎる回路ではないかという感想です。

なんでこんな回路になってるんでしょうね。

まあ、実際にはICの実力だったりUSB電源側の保護回路だったりで、なかなか壊れることはないかもしれませんが、そこに期待するのは危険です。

Arduinoの回路をじっくりと読むきっかけとなった自作の互換機ですが、そちらには怖いよポイントへの対策を入れました。
↓とか

どういう対策したかの話は、作ったArduino互換機の紹介も併せて次回したいと思います。
geekyfab.com

今回はこれで終わります。


GEEKY Fab.では思い出のゲームで遊ぼうをテーマにハードウェアを作ってます。
よかったら↓から見ていってください。