Raspberry Pi Zero W の消費電流測定
Raspberry Pi Zero W をケースに入れて電源スイッチとシャットダウンスイッチを付けましたが、これで気持ちよく使えるようになりました。とは言ってもすぐにやりたいことは無いので、SSHからコマンド打って遊んでいる状態です。
こんなふうにいじっていて気になったのが、シャットダウンしても結構な電流が流れていることです。さらに電源スイッチ(RUNスイッチ)を使って電源をオフにしても消費電流が完全にゼロになりません。電流はUSBパワーチェッカーを使ってモニターしたのですが、ちょっと気になる現象です。
▼ケースに入れた Raspberry Pi Zero W

トグルスイッチが電源スイッチ(RUN)、赤いボタンがシャットダウンスイッチです。
USB電源チェッカーの分解能は10mAなので細かい変化が判り難いです。ということで電源ラインに0.1Ωのシャント抵抗を入れてデジタルマルチメーターで測定することにしました。
▼測定に使ったシャント抵抗

0.1Ωのセメント抵抗です。
以下はシャント抵抗の両端電圧で、10倍すると電流になります。なお、ラズパイはSSHで使っていてグラフィックコンソールは動かしていない状態です。
▼ブート後のアイドル状態

ブート後SSHでログインしてシステムが安定した状態です。小さな変動がありますが消費電流は107mAでした。
▼負荷をかけた状態

システムに負荷をかけると 209mAまで電流が増えました。時々大きな値が出るのでオシロで波形を見てみました。
▼オシロで見た電流波形

200mAをベースに、時々350mAまでスパイク状に電流が増えています。スパイクの部分はたぶんWiFiを使っている時だと思います。
ちなみに負荷を掛けた状態を作る方法としては yes を使うのが定石のようですが、今回は ls / -alR コマンドを実行させました。
このコマンドは、ルートディレクトリ以下の全てのディレクトリとファイルの情報を表示しますが、何しろファイルの数が多いので実行が終わるのに1分以上かかります。その間ファイルシステムを引っ掻き回すと同時にコンソールに大量に文字が流れるので、WiFiにも負荷がかかるはずです。CPUには大した負荷が掛かっていないかも知れませんが、コマンドが覚えやすいのと出力が派手なので、こういう時はこのコマンドを使っています。なお、パーミッションが無いディレクトリは表示されないので sudo ls / -alR とやった方が良いのかも知れません。
▼SSHのコンソールに表示された is -alR の実行結果

SSHで接続したタブレットからコマンドを実行している様子です。
▼シャットダウン後

シャットダウンスイッチを使ってシャットダウンした状態です。コマンドとしては sudo shutdown -h now を実行した後の状態です。シャットダウンしても 37.6mA流れています。
アイドル状態が107mAだったのでの30%くらいに電流が減っただけです。思ったより大きな電流が流れ続けています。どこで電流使っているんでしょうね。電池駆動する場合、これはかなり重い負荷になります。
▼RUNスイッチで電源をOFFにした状態

ここまでやっても電源電流は 12.7mA 流れています。思ってたより大きな電流なので注意が必要だと思います。
ちなみに、Pi Zero にはRUNの信号ピンがあります。たぶん内部でプルアップされているようで、このピンに何も接続しないと電源が入ります。つまり、HighでRUNがイネーブルされ、GNDに落とすと電源がOFFになります。
Raspberry Pi Zero W で出来る方法はここまでです。あとは電源のマイクロUSBコネクタを引っこ抜くしかありません。マイクロUSBを抜けばもちろん電流はゼロになります。
◆まとめ
シャットダウンコマンドで停止させても、RUNスイッチで電源を切っても結構な電流が流れることが判りました。Linuxが動くんだからしみったれたこと言うんじゃないよ、と言われそうですが、Arduinoなどのマイコンで育った自分としてはちょっと意外な結果でした。
こんなふうにいじっていて気になったのが、シャットダウンしても結構な電流が流れていることです。さらに電源スイッチ(RUNスイッチ)を使って電源をオフにしても消費電流が完全にゼロになりません。電流はUSBパワーチェッカーを使ってモニターしたのですが、ちょっと気になる現象です。
▼ケースに入れた Raspberry Pi Zero W

トグルスイッチが電源スイッチ(RUN)、赤いボタンがシャットダウンスイッチです。
USB電源チェッカーの分解能は10mAなので細かい変化が判り難いです。ということで電源ラインに0.1Ωのシャント抵抗を入れてデジタルマルチメーターで測定することにしました。
▼測定に使ったシャント抵抗

0.1Ωのセメント抵抗です。
以下はシャント抵抗の両端電圧で、10倍すると電流になります。なお、ラズパイはSSHで使っていてグラフィックコンソールは動かしていない状態です。
▼ブート後のアイドル状態

ブート後SSHでログインしてシステムが安定した状態です。小さな変動がありますが消費電流は107mAでした。
▼負荷をかけた状態

システムに負荷をかけると 209mAまで電流が増えました。時々大きな値が出るのでオシロで波形を見てみました。
▼オシロで見た電流波形

200mAをベースに、時々350mAまでスパイク状に電流が増えています。スパイクの部分はたぶんWiFiを使っている時だと思います。
ちなみに負荷を掛けた状態を作る方法としては yes を使うのが定石のようですが、今回は ls / -alR コマンドを実行させました。
このコマンドは、ルートディレクトリ以下の全てのディレクトリとファイルの情報を表示しますが、何しろファイルの数が多いので実行が終わるのに1分以上かかります。その間ファイルシステムを引っ掻き回すと同時にコンソールに大量に文字が流れるので、WiFiにも負荷がかかるはずです。CPUには大した負荷が掛かっていないかも知れませんが、コマンドが覚えやすいのと出力が派手なので、こういう時はこのコマンドを使っています。なお、パーミッションが無いディレクトリは表示されないので sudo ls / -alR とやった方が良いのかも知れません。
▼SSHのコンソールに表示された is -alR の実行結果

SSHで接続したタブレットからコマンドを実行している様子です。
▼シャットダウン後

シャットダウンスイッチを使ってシャットダウンした状態です。コマンドとしては sudo shutdown -h now を実行した後の状態です。シャットダウンしても 37.6mA流れています。
アイドル状態が107mAだったのでの30%くらいに電流が減っただけです。思ったより大きな電流が流れ続けています。どこで電流使っているんでしょうね。電池駆動する場合、これはかなり重い負荷になります。
▼RUNスイッチで電源をOFFにした状態

ここまでやっても電源電流は 12.7mA 流れています。思ってたより大きな電流なので注意が必要だと思います。
ちなみに、Pi Zero にはRUNの信号ピンがあります。たぶん内部でプルアップされているようで、このピンに何も接続しないと電源が入ります。つまり、HighでRUNがイネーブルされ、GNDに落とすと電源がOFFになります。
Raspberry Pi Zero W で出来る方法はここまでです。あとは電源のマイクロUSBコネクタを引っこ抜くしかありません。マイクロUSBを抜けばもちろん電流はゼロになります。
◆まとめ
シャットダウンコマンドで停止させても、RUNスイッチで電源を切っても結構な電流が流れることが判りました。Linuxが動くんだからしみったれたこと言うんじゃないよ、と言われそうですが、Arduinoなどのマイコンで育った自分としてはちょっと意外な結果でした。