こんばんは。
前回の記事に引き続き、今回はESP-WROOM-32 ( ESP32 ) のUSB電源の突入電流を考察していこうと思います。
これは、ESP-WROOM-02 ( ESP8266 ) にも使える知識だと思います。
前回の記事では、電流検出抵抗(シャント抵抗)を使って、ハイサイド(5Vおよび3.3V側)測定とローサイド(GND側)測定を行い、ESP-WROOM-32 ( ESP32 )が吸い込む電流値と5Vラインの突入電流(インラッシュカレント)を測定しました。
ESP-WROOM-32 ( ESP32 )単体使用した場合の消費電流は、MAX 600mA と考えて設計すれば良いだろうという結論に達しましたが、電源投入時の突入電流抑制については未解決でした。
突入電流(インラッシュカレント)は接続するポートによって3Aを超えてしまったので、そのラインに接続してある素子を破壊する可能性があり、無視できません。
そこで、今回は突入電流抑制に絞って、いろいろと考察してみようと思います。
そして、結果的にUSB規格書を調べる必要に迫られましたので、素人の私なりの解釈で報告したいと思います。
もし、誤り等ありましたら、コメント等でご連絡いただけると助かります。
因みに、LDO LT1963 やパワースイッチ(電流制限スイッチ)の実験は終了したのですが、この記事中にはとても収まり切らないので、すぐ別記事でアップする予定です。
USB 規格では許容電流値はどうなっているか
まず、市販されているUSB機器製品について、ロゴマーク認証というものがあり、それに通過した製品にはwww.USB.org にあるロゴマークが表示されているようです。
製品にするには、このロゴマークは必ずしも必要ないようなのですが、このロゴマークがあるものはUSB規格を満たしていて、信頼性があると言って良いと思います。
そのロゴマーク表記には規格団体 USB-IFによって策定および運用されているUSB コンプライアンス試験というものがあり、それを通過したものがロゴマークを付けられるそうです。
ではまず、英語版のUSB 2.0 の規格書を入手して、Google翻訳の力をお借りして解釈してみます。
http://www.usb.org/developers/docs/usb20_docs/
以下、USB2.0規格の過電流保護に絞って、私なりの個人的要約です。
USBホストおよびハブ側の過電流保護について
規格書では、USBホスト側およびハブ側のポートは過電流保護しなければならず、過電流を検出してソフトウェアに報告するようにしなければならない。
また、全ポート合計の電流は、設定値で5.0Aを超えてはならず、保護装置をトリップしないように余裕を持った回路構成にすることとあります。
7.2.1.2.1 Over-current Protection
これから考えると、1ポートの突入電流は5.0Aまで許容されているとも解釈できますが、それについては具体的には述べられていません。
個々の製品はどういう構成になっているかは全く分かりませんので、5.0Aまで取れると誤って解釈しない方が無難ですね。
USB動作の最低電圧について
USB2.0 では、ローパワーモード(100mA) では4.40V で動作する必要があり、ハイパワーモード(500mA) では、4.75V でフルパワー動作しなければならないとあります。
7.2.1.3 Low-power Bus-powered Functions
7.2.1.4 High-power Bus-powered Functions
7.2.2 Voltage Drop Budget
USB 電源投入の突入電流(インラッシュカレント)制限について
ここの解釈が重要です。
以下に規定されています。
7.2.4.1 Inrush Current Limiting
最も重要なことは、突入電流(インラッシュカレント)によって、VBUS(5V)ラインの電圧降下を330mV以下にしなければならないということです。
低電力モード(100mA)からハイパワーモード(500mA) へ切り替える時も同様です.
なぜかというと、それ以上の電圧降下が起こると、USBデバイスの最低動作電圧を下回ってしまい、一旦立ち上がった電源が落ちてしまう可能性があります。
また、ホスト側もこの電圧降下によって悪影響を受け、場合によってはパソコンをダウンさせてしまう可能性があります。
昔のパソコンでは、これによってブルースクリーンになってしまったこともあるようです。
この電圧降下(ドロップ)を330mV以下に抑えるためには、バイパスコンデンサも含めたUSBデバイスの総容量を10μF以下にし、44Ωより軽い負荷にすれば良いとあります。
44Ωより軽いとは44Ωより大きい抵抗値にしなければいけないということです。
要するに、電流が多く流れる負荷は消費電力が大きいので「重い負荷」となり、負荷の抵抗値が大きい方が流れる電流は小さいので、軽い負荷ということです。
ここは勘違いしやすいところですね。
なぜ、そうしなければならないかというと、規格ではUSBホストおよびハブ側のポート出力には120μF以上のコンデンサがありますので、そこから引き出せる電流値を計算して、330mV以下の電圧ドロップに抑えるには、10μF以下で、44Ω以上にすれば良いということです。
それでもやはりコンデンサの容量を増やしたい場合があると思います。
その場合は何らかのVBUS 電流制限回路を組み込む必要があると記述してあります。
そして、この突入電流制限をしなければいけない、もう一つの別の理由は、コネクタの接点アーク放電を最小限にしてコネクタの寿命を延ばすということもあると述べられています。
なるほど・・・。
全面的に納得です。
USB規格というものは、本当にいろいろとよく考えられて練られて作られていますね。
これを作った技術者の方々に敬意を表したいですね。
以上をまとめて、私なりに勝手に解釈すると、USBホスト側の電圧降下を330mV以下に押さえることが最重要なのであって、それができれば、負荷の容量や抵抗は大きくても差し支えないと言えるのではないでしょうか。
LDO (ロー・ドロップ・アウト)電圧レギュレーターの出力側は、ESP-WROOM-32 ( ESP32 )に供給する電圧を安定させるために、容量の大き目のコンデンサを置きたい場合が多々あります。
そこで、USBハブの電流スイッチ回路を調べてみると、入力側は10μFで、出力側は120μFを設置しているので、それをUSBデバイスとして考えてみると、レギュレーターの入力側だけ10μF以下に抑えれば良いのではないかと、私的には勝手に解釈してしまおうと思います。
また、USB2.0規格書には無いことなのですが、USB コンプライアンス試験では、突入電流は50μC(マイクロクーロン)までと規定しているそうです。
このμCという単位がややこしいのですが、
1C(クーロン) = 1A×1秒
となります。
つまり、1Aというのは、1秒間に1Cの電荷が動いたということです。
この辺の計算はちょっと怪しいのですが、50μCということは、1Aの電流を50μs 流した場合と同じとなるのではないでしょうか?
高級なオシロスコープに電流プローブがついているものは、クーロン単位で表示できるものがあるようです。
50μCという値はどういうことをいうのか、正直まだよくわかりません。
USB2.0 規格では500mA が最大許容電流ですが、結局のところ、突入電流については1A以上になっていても、50μCを超えなければ規格を満たしていると言えるのではないでしょうか。
ということは、突入電流については500mA以下にこだわらなくても良いのではないかと、私的に勝手に解釈してしまおう思っています。
5Vラインに固定抵抗で突入電流(インラッシュカレント)抑制
まず、電子工作的に電流抑制といえば固定抵抗が思い浮かびます。
オームの法則の通りで、5Vラインに適切な固定抵抗を接続すれば、電流が抑制されます。
試しに、熱による影響の少ない金属皮膜抵抗を接続してみました。
前回の記事の回路を使い、LDO 電圧レギュレーター ADP3338 の前段の5V ( Vbus )ラインに1W 5Ωの金属皮膜抵抗を並列で2つ接続し、2.937Ωにして突入電流制限をしてみます。
なぜ、この抵抗値かというと、これ以上にすると電流制限や電圧降下が大きすぎ、ESP-WROOM-32 ( ESP32 )が起動しないことがあったためです。
それと1W抵抗を並列としたのは、許容電流を多くするためです。
ADP3338に許容できる電流制限抵抗は2.5Ω~3Ωくらいが限度かと思われます。
下図の様にして、まずは5Vラインの①のポイントで電流測定します。
この位置で電流測定を行うのは、USBホスト側(PC側)の5V(Vbus)ラインの危険な突入電流や電圧ドロップ(降下)が無いかを調べるためです。
まず、比較しやすいように、電流制限抵抗無しの突入電流は以下のようになります。
今回の測定では4Aを超えてしまいました。
2回目の突入電流で電圧ドロップが起きて、USB2.0規格の最低4.75Vを割ってしまいました。
これではダメですね。
ということで、電流制限抵抗2.937Ωを入れてみるとこうなりました。
電流が1.41Aまで抑えられました。
これだと、ADP3338に接続したチップインダクタBLM21Pの許容電流1.5Aを下回り、何とかクリアしました。
そして、第2次突入電流によるホスト側Vbusラインの電圧ドロップも4.72Vで、USB2.0規格の最低ライン4.75Vを若干下回ってしまいましたが、ギリギリ何とか許容レベルかなと。
では、3.3Vラインの電圧を安定させるために、100μFの電解コンデンサを入れてみると、この突入電流はどうなるのでしょうか?
測定結果はこうなりました。
いかがでしょうか。
3.3Vライン側のコンデンサ容量を大きくすると、第2次突入電流の時間が約7倍ほど長くなりましたね。
それに伴い、電圧降下時間も7倍長くなりました。
これから分かる通り、コンデンサ容量を大きくすればするほど、その充電の為に電圧ドロップの時間が大きくなってしまいます。
この5V Vbusラインの電圧がUSB2.0規格の最低ラインを若干下回ってしまっているので、これは規格外となってしまうのでしょうか?
ただ、この程度だと、ホスト側の動作には問題ないと思われます。
しかし、これ、全突入電流の電荷面積が50μCを余裕で超えているっぽいです。
USB2.0コンプライアンステストには恐らく不合格ですね。
では、起動後の自動リセット時はどうなっているのでしょうか?
まずは、比較のために、電流制限抵抗無しの測定結果はこうなります。
前回の記事のACアダプター接続時の測定より電流値がちょっと下がっていますね。
いろいろと測定条件を変えてしまったからでしょうか・・・。
ただ、おおよそ600mAを消費しているので、良しとします。
電圧降下も問題なしです。
では、電流制限抵抗を入れてみるとこうなります。
リセット動作時間が若干長くなっていますが、測定する度にこの時間が変わるので、気にしなくて良いと思われます。
電流値も若干上がっていますが、約600mA ということで、そんなに変わりはないと言えます。
では、3.3Vラインに100μF電解コンデンサを入れた場合はこうなりました。
数値では逆に下がっていますが、ノイズのスパイク電圧を無視すると概ね同じ電流値と言えると思います。
以上をまとめると、電流制限抵抗2.937Ωを5Vラインに入れた場合、ホスト側の突入電流は1.4Aほどに抑えられ、電圧降下も規格外ですがギリギリ問題なしで、リセット時も問題なしとなりました。
そして、リセット時のUSBホスト側Vbusラインの電圧降下や電流値は、3.3Vラインのコンデンサ容量にあまり影響を受けないようです。
ただし、電源投入時の突入電流は時間が長くなってしまうので要注意です。
実際の動作は、Wi-Fiで10mA LED 8個同時点灯も問題なしでした。
次に、5Vラインの電流制限抵抗後の電圧降下を見てみます。
以下の回路の②のポイントで電流測定を行います。
この位置の測定理由は、電流制限抵抗による電圧ドロップが、LDO 電圧レギュレーターの動作範囲電圧内に収まっているかを見るためです。
では、突入電流波形はこうなります。
電流値は先ほどのポイント①のホスト側測定同じですが、電圧降下(ドロップ)がとんでもないことになっていました。
2.64Vまで降下しています。
ということは、LDO電圧レギュレーターの動作範囲が問題になってきます。
ADP3338 は、2.7~8V です。
あらら・・・。下回ってしまいました。
この波形で悪いところは、最初の立ち上がりで一度起動して、すぐに瞬時ドロップしてしまうことです。
これは動作不安定になってしまうし、デバイスに悪影響を与える可能性があります。
100μsという短い時間で問題になるかどうかは何とも言えませんが、負荷側のコンデンサ容量によって、この電圧ドロップ時間が長くなってしまうので問題ありです。
では、3.3Vラインに100μF電解コンデンサを入れてみると、突入電圧波形はこうなります。
とんでもないことになっていますね。
LDO ADP3338 の動作範囲外の電圧が3倍長くなってしまいました。
これはダメですね。
では、リセット時の電圧波形を見てみましょう。
いかがでしょうか。
いくら、LDOの動作範囲内の電圧だからといって、このドロップはちょっとマズイですよね。
では、この時の3.3Vラインはどうなっているのでしょうか?
測定結果はこうなっています。
赤色の3.3Vラインの電圧ドロップ(降下)は全くありません。
青色の降下は電流検出抵抗(シャント抵抗)の降下です。
やはり、ANALOG DEVICES のADP3338はすばらしいですね。
5Vライン側であれだけドロップしていても、3.3V側は安定していて、必要な電流はガッツリ供給していて文句なしです。
これで安心・・・と言いたいところですが、やはり、固定抵抗で電流制限をするのは危険ですね。
なぜならば、電圧ドロップがギリギリの運用だからです。
USBケーブルを長くしてしまったり、貧弱なUSBポートから電源を取ったりすると、たちまち動作範囲外まで電圧ドロップしてしまい、動作不安定になるでしょう。
下手をすると、「ねむい」さんの以下のブログのように、ESP-WROOM-32 が故障することも有り得ますね。
ESP-WROOM-32を使ってみる5 -ESP-WROOM-32が物故割れた!
まとめ
以上、私的に解釈したことをまとめるとこんな感じです。
●USB2.0 規格のデバイスは、突入電流等によるUSBホスト側の電圧ドロップ(降下)を330mV以内に抑えれば良い。
●突入電流だけについて考えれば、50μCを超えなければ、瞬時電流で500mAを超えても差し支えないと思われる。
●ESP-WROOM-32 ( ESP32 )電源設計における突入電流抑制対策は、電流制限抵抗を使うことは避け、他の方法を考えた方が良い。
●3.3Vラインのコンデンサ容量を大きくすると、突入電流の時間が長くなる。
今回はUSB2.0規格を基に考察してみましたが、USB3.0 でもUSB type-C でも、USB2.0ケーブルを挿せるようなので、とりあえずUSB 2.0 規格を押さえておけば良いのかなと思います。
最初に述べましたが、電流制限抵抗以外で効果的に突入電流を抑制できる方法は既に見つけました。
とても、この記事中に書ききれなかったので、LDO LT1963や、パワースイッチ(電流制限スイッチ)の使用についてはすぐ次の記事にアップしたいと思います。
ではまた・・・。
Amazon.co.jp 当ブログのおすすめ
コメント
ねむいです。こんばんは。
LDOの入力キャパシタの容量を単純に減らせば突入電流も減らすことが
できるのですが、容量を減らしすぎてしまうと入力側ラインのL成分と
入力キャパシタのC成分の共振の影響で電源投入時にLDOの入力端子に
最大定格を超える過電圧(オーバーシュート)が発生することがあります。
電圧の立ち上がり時間がコントロールされていないUSBの+5V電源を
用いて給電するような使い方はそのリスクが極めて高くなります。
mgo-tecさんの前回の記事にその傾向がみられる波形がありましたね。
8年前の私の記事ですがかつて購入した基板の中でそれが顕著に発生した
記録を残しておりますのでご参考に。
http://nemuisan.blog.bai.ne.jp/?eid=155302
特にMLCC(積層セラミックコンデンサ)はESR(等価直列抵抗)が極端に低く
オーバーシュートが(急激な負荷変動時でも)発生しやすくなるのでご注意ください。
TIのサイトにも詳しい解説がありますので併せてご検討ください。
http://www.tij.co.jp/lsds/ti_ja/analog/powermanagement/hints/power_sel_hint47.page
昨今のMLCC対応のLDOでは入出力ともX7Rクラスの温度特性で16V以上の
耐圧の10~47uFのMLCCを選び回路に合わせて部品定数を細かく詰めて
行くのが鉄板です。
ねむいさん
私が今とても欲しかったタイムリーな情報、ありがとうございます!!!
入力側はできるだけセラミックコンデンサが良いと思っていましたが、なるほど、ESRが少ないことによる影響もあるんですね。
共振によるオーバーシュートがあるとは全く考えが及びませんでした。さすがですね。
適度なESRがあるコンデンサと並列して使用することによって、その影響を低減できる場合もあるわけですね。
なるほど!!!
またまた勉強させていただきました。
ありがとうございます。
m(_ _)m
今、ADP3338のコンデンサ容量を少なくしてみましたが、突入時の逆電流が発生したりして、共振による影響っぽい現象が見られますね。
入力側容量を大きくして電解コンデンサーを入れると逆電流が無くなりましたので、少なすぎるのは良くないことがハッキリしました。
ただ、突入電流の大きさについてはあまり抑制できませんでした。
もうちょっといろいろと実験して、記事で報告したいと思います。
貴重なお時間を割いてコメント投稿していただき、感謝いたします。
重ねて、ありがとうございました。
m(_ _)m