カテゴリー
ESP8266+ESP32+RISC-V

トラ技Wi-Fi ESP-WROOM-32 搭載Arduino互換ボード IoT Express の起動が安定しない

トランジスタ技術2017年11月号(CQ出版社)に付属しているWi-Fi搭載Arduino互換ボード IoT Express の起動に失敗する場合がありました。コンデンサの変更などにより対策が可能であることが分かりましたので報告いたします。
なお、出版社の公式サイトではUSBシリアル変換モジュール上のリセッタブルヒューズ(ポリスイッチ)の改造による対策が案内されています。
CQ出版社
しかし、上記のような細かな半田付けが苦手な人もいるでしょう。
本ブログでは、部品の変更による対策を講じてみました。
具体的には、ショットキーD2をジャンパー線へ変更し、C4(100uF)とC9(10uF)を16SEPF1000M(1000uF)へ変更します。
USBシリアル変換モジュールAE-FT234X上にはリセッタブルヒューズFEMTOSMDC010F(またはMF-FSMF035X)が実装されています。USBから供給された電源は、リセッタブルヒューズと、IoT Express基板上のショットキーダイオードD2、LDOタイプ電源レギュレータU3を経由して、ESP32モジュールの電源端子へ入力されます。
しかし、ESP32の起動時やリセット時には1Aもの突入電流が数十μ秒発生し、その後も起動処理のための電流200mAが10msの期間、流れます(同トラ技のP.43を参照)。また約1秒後に無線部の始動とともに200mAが100msの期間、流れます(下図)。
これらが起因し、リセッタブルヒューズ部で大きな電圧降下が発生し、ESP32の電源入力電圧が2.7V※を下回り、起動失敗の原因となっていました。
※仕様書上の最低動作電圧は2.8V
起動時の電流波形。起動直後と、約800ms後に大きな電流が流れる。
グラフの横軸は200ms/div、縦軸は約50mA/div

何故、コンデンサによる対策が有効なのか

一方、定常状態でのESP32の消費電流は概ね150mA以下です。リセッタブルヒューズFEMTOSMDC010Fの定格電流は100mA、トリップ時間0.1秒、遮断電流は250mAにつき、実験目的で使用するのであれば、供給可能な範囲です(MF-FSMF035Xの場合は、定格電流350mA、遮断電流750mA)。
つまり、起動が完了するまでの区間に必要なエネルギーをコンデンサへ蓄積しておくことや、定常動作時の瞬時電流を十分に平滑化しておくことで、対策が図れることが分かります。
起動時に250mAを超過している時間は、トリップ時間100msよりも十分に短いので、環境によっては未対策でも動作してしまうこともあります。しかし、ちょっとした環境の違いや部品の個別特性の違いで、挙動が一転します。例えば、一度でも起動に失敗すると、リセッタブルヒューズの温度が上昇し、以降、不安定な動作に陥るでしょう。

レギュレータの入力側と出力側の両方にコンデンサを入れる

コンデンサを追加する場合、ESP32モジュール側の3.3V電源にコンデンサを追加するのが基本的な対策方法です。しかし、入力側の5V電源への追加を併用することも重要です。5V側に追加することで、3.3V側に比べて約4倍のエネルギー供給が可能だからです。
さて、コンデンサに蓄積可能な最大エネルギーはコンデンサの容量に比例します。ところが実際に充電によって蓄積されるエネルギーは電圧の二乗に比例します。つまり、5Vと3.3Vでは2.3倍(5^2/3.3^2)も実蓄積量が異なります。
さらに、ESP32の電源電圧降下を救うために利用可能なエネルギーは、ESP32の最小動作電圧2.8Vまでに放電可能なエネルギーに限られます。
放電可能エネルギ = 1/2・C・Vin^2 – 1/2・C・(Vmin+Vdp)^2
Vin = 電源電圧 5V or  3.3V
Vmin = ESP32最小動作電圧2.8V
Vdp = LDOドロップ電圧 0.3V
上式より、LDOの電圧降下分を0.3Vとすると、5V側にコンデンサを追加した方が、3.3V側に追加したときに比べて、約4倍のエネルギーを利用できることが分かります。
ただし、LDOによる電流制限や応答速度を加味すると、瞬時(30usくらいの時間)については、3.3V側からしか十分に供給できません。また、リセッタブルヒューズによって電源ラインの全体的に電圧が低下した状態では、3.3V側に、より大きな容量が必要となります(リセッタブルヒューズが無ければ、定常電圧も上昇し、容量が低減できる)。したがって、5V側にコンデンサを追加したからと言って、3.3V側のコンデンサを減らすことは出来ません。
下図は、3.3V側に16SEPF1000Mを2つ入れた時(灰色)と、5V側と3.3Vに1つづつ入れた時(黒色)の比較です。合計の容量は同じですが、3.3V側に2つ入れた場合は、約10msの時間経過につれて電圧が下がってゆく様子が分かります。片方を5V側に入れた方は、電圧低下が少なく、まだまだ供給能力に余裕あることが分かります。
黒色 = 5Vと3.3Vに各1つのコンデンサ(C4とC9に16SEPF1000M)
灰色 = 3.3Vに計2つのコンデンサ(C2とC4に16SEPF1000M)
波線 = 起動可能な最低電圧 2.7V (ただし、仕様上は2.8V以上が必要)
 

その他の留意点

1.突入電流
容量の大きなコンデンサを使用する場合は、コンデンサに充電または放電されるときの突入電流が大きくなる場合があるので、コンデンサの最大許容電流仕様を確認しておく必要があります。
充放電電流が許容値を超過
した状態で使い続けると、性能が劣化するだけでなく、発煙・発火・爆発などの事故が発生する恐れがあるので、ご注意ください。
2.温度
リセッタブルヒューズの抵抗値は周囲温度によって上昇します。このためESP32の起動に失敗してリセッタブルヒューズの温度が上がってしまった場合や、環境温度が高かった場合や、動作時の基板の温度上昇、半田付け直後などといった場合に、大幅な電圧降下が発生し、起動しなくなる場合が考えられます。その場合、USBを抜き、数10秒から数分程度、冷ましてから電源を入れ直すと良いでしょう。
上図のとおり、実験を目的とした利用範囲であれば、十分なマージン(0.3V程度)を得ています。
3.他の部品との物理的干渉
コンデンサの物理的サイズが大きくなるので、コンデンサが他の部品と接触したり、シールドを取り付けた時に、シールド側の基板背面から飛び出したリード線などがコンデンサに接触する場合があります。
コンデンサ表面は絶縁されていますが、他の部品と接触する部分についてはポリイミドテープなどで絶縁を補強しておくとよいでしょう。シールド側でリード線が飛び出している個所については、ニッパーで切断し、ポリイミドテープで保護しておきます。
なお、コンデンサ16SEPF1000Mの上部にアルファベットの「K」のような凹凸が刻まれています。これはコンデンサに異常が生じして破裂する前に開口し、爆発を防止するための切り込みと思われますので、「K」の文字の部分をテープなどで覆わないように注意してください。
4.実験目的内で利用ください
大量生産するような場合や、屋外など様々な環境で使用する場合には、より詳細な検証が必要です。
本ブログ記事の公開にあたり、室温22℃の環境下で、20回の起動動作、リセット操作、30分の連続動作、さらに連続動作後のリセット操作を確認しました。
実験目的であれば十分な動作確認であると判断しておりますが、当方は不具合や事故による責任は負いません。自己責任で活用ください。
5.拡張シールドを使用する場合
Arduino用拡張シールドを使用する場合は、供給可能な電流にご注意ください。
例えば、LCD Keypad Shieldは約30mAの電流を持続的に消費します。これにより、リセッタブルヒューズに流れる電流は180mAに至り、動作が不安定になる場合があります。
可能であれば、定格200mA、切断400mAのリセッタブルヒューズに交換してください。
あるいは、BOOTボタンを押したままパソコンへUSB接続し、スケッチを書き込んだ後は、USB出力のACアダプタを使用するなど、使い方に工夫してください。
(ACアダプタによっては、電流が増大しても電圧低下の少ないものがありますので、お手持ちの5V出力のUSB用ACアダプタで試してみると良いでしょう)

むすび

 IoT Express の起動が不安定になる問題に対し、コンデンサの変更による手軽な対策方法を考案し、またその動作原理の一部を示すことが出来ました。
ボクにもわかるWi-FiモジュールESP32
by ボクにもわかる電子工作
https://bokunimo.net/
 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es