概要
- BLEモジュールを使うにあたっては消費電流が気になるので、簡単な方法で調べてみた。
- 前の投稿に載せたスケッチ (adv_temp2.ino) を動かした状態 (ESP32側でスキャン結果が表示できている状態)で、各部の電流を測ったり、スケッチに若干の変更を入れたりして効果を見た。
消費電流の測定
ISP1807 Microボードの回路図はスイッチサイエンス社のショップサイトで公開されているので、それを参考に電源周りの概略図を作った。右側の端子名はISP1807のピン(パッド)を表している。
同じスケッチ (adv_temp2.ino) でアドバタイズし続けている状態で、外部電源を接続する箇所 (図のTP_xxx) を変えながら消費電流を測定した。電源装置 (LM2596 降圧電源モジュール) から、10Ω(2W, 1%) のチップ抵抗を経由して各テストポイントに接続し、10Ωの抵抗両端の電位差をテスターで測定した。電位差 ÷ 10 が電流値ということになる。
デバイス電源のハイサイド側に10Ωの抵抗をはさむので、たとえば100mA消費するデバイスなら1Vも電圧降下してしまって話にならないのだが、今回の負荷は最大でも10mA程度なのでたいした影響はないだろう。
また、USBケーブルから給電するときにはVBUSに流れる電流を測る必要があるので、以下のような治具?も作って測定した。
秋月のUSBレセプタクルのDIP化キットを使っていて、type-Aが下流(ペリフェラル側)、Type-Cがホスト(ハブ)側になり、両者のVBUS端子間に抵抗を入れてその電位差を測る。抵抗値を変えれば消費電流の大きな機器にも対応できるだろう。
測定結果 (PON LED有り)
電源条件 | 消費電流 | 備考 |
TP_VBUSに+5.0V | 4.4mA | nRF52のUSB有効 |
TP_VBUSに+5.0V | 2.2mA | nRF52のUSB無効 |
TP_5Vに+5.0V | 2.0mA | USB無効 |
TP_3.3Vに+3.3V | 1.4mA | USB無効 |
(USBハブからVBUS電圧を与えたときに比べると、電圧が若干低いせいか電流もすこし少なくなっていた)。
TP_VBUSにはUSBケーブルを介して+5Vを与え、TP_5VとTP_3.3Vには、ISP1807がのっているブレッドボードに電源と抵抗を接続した。
TP_VBUSに与えた場合(USB有効、無効)
TP_VBUS(つまりUSBケーブル)に電源に与えた場合、VBUSはそのままISP1807のVBUS端子に接続されているから、nRF52内部のUSBデバイスに電源を与えることになる。内部のLDOレギュレータやD+ラインのプルアップも有効になる。
nrf_usbd_disable(NRF_USBD); によってUSBデバイスを無効にしてやると、2.2mAまで減少した。USB有効状態でホストをサスペンド(PCのスリープ)状態にしてやった場合も消費電流は同程度減少した。ただ、ホストのスリープを解除してみると、スリープ前より若干多くの電流が流れるようになったので、なにか改善すべき点があるのかもしれない。
TP_5Vに与えた場合
TP_5Vは、逆流防止のためのショットキーバリアダイオード(SBD)をスキップした位置になる。TP_VBUSと比較すると200uAほど減少した。
TP_3.3Vに与えた場合
TP_3.3Vは、+3.3V出力のLDO (XC6222B) の出力側にあたる。このLDOの消費電流はスペック上は100uA typ. なのだが、TP_5Vと比べると0.6mA減少した。
PON LEDの電流を測っているようなもの
測定ではTP_3.3Vに+3.3Vを与える1.4mAが最小となったが、概略図のようにパワーインジケーターLEDが常時点灯するようになっている(直列抵抗は1kΩ)。このLEDの両端の電位差を測ると約1.9Vだったことから、LEDには常に (3.3 – 1.9) ÷ 1000) = 1.4mA 流れていることになる。結局、LEDのIFを測っているようなものだった。
測定結果 (PON LED無し)
もったいないのだがPON LEDを外してやってみた。予想通りにいずれの結果もほぼ1.4mA程度ダウンしている。最初の写真はPON LEDを剥がしたあとのもの。
電源条件 | 消費電流 | 備考 |
TP_VBUSに+5.0V | 3.16mA | USB有効 |
TP_VBUSに+5.0V | 0.89mA | USB無効 |
TP_5Vに+5.0V | 660μA | TP_3.3V=3.3V |
TP_5Vに+3.6V | 500μA | TP_3.3V=3.28V |
TP_5Vに+3.3V | 480μA | TP_3.3V=3.26V |
TP_3.3Vに+3.3V | 10μA未満 |
TP_5Vに3.6Vや3.3Vを与えてみたのは、たとえば乾電池で駆動するようなとき、オンボードのLDOを利用できたほうが話が簡単になるからで、いずれの場合も、LDOによるドロップアウトはほとんどなかった。データシートによると出力電流が200mA程度ならば0.1Vも落ちないようである。
ただ、電源をTP_5VとTP_3.3Vに与えたときの消費電流を比べると、ちょっと納得がいかないものがある。
きょうのまとめ
- このISP1807 Microボードは、miniUHSと組み合わせてhoboNicolaアダプターのBLE版とするために購入したものだったのだけど、興味のままにアドバタイジングさせたり電流測ったりLEDを剥がしたりしてしまった。hoboNicolaアダプターに使うときは動作中を示すLEDを追加することにする。プログラムはできているので、そのうちブログにまとめます。
- マイクロアンペアオーダーで測定していると、アドバタイズの実行時(電波出しているとき)は、電流値が一瞬跳ね上がる。つまり、表にまとめた電流はほぼ delay(10000); で実質的にスリープしている期間の値ということだろう。テスターによる測定では、ピーク時の電流を把握するのはちょっと無理。
- TP_5VとTP_3.3Vに電源を接続したときの消費電流の相違は、おそらくLDOの入力側にあるグラウンドに接続した抵抗(10kΩ)が寄与しているのだろう。この抵抗は、Vin < Vout 時にVin側に流れ出す電流による悪影響を減らすためと思うのだけど、SBDも入っていることだし果たして必要なのかな、という印象。