RP2040、ソフトウェア開発環境 -6

dormant_t2

RP2040のDORMANT modeを試す

RP2040 Datasheetではdormant modeの消費電流はTypicalで0.18mA、もちろんこれはChip単体での数字ですので、ボードとしての消費電流を把握する必要があります。Seeed XIAO RP2040と構成がほぼ同じのPaspberry Pi Pico Datasheetを調べると、dormant modeでの平均消費電流は0.8mAとのこと。機器に組込むことを考えると1mA以下に出来れば及第点といえるのですが。。

いきなりですが下記が今回試したコードになります。

dormant_test.c

ビルドには「pico-extras」を導入します。pico-sdkを入れたフォルダにて、下記のようにします。

CMakeLists.txtを変更します。

前回作成したbuildフォルダを削除し、cmakeからやり直します。(buildフォルダの丸ごと削除でスッキリ初期化出来るので便利です)

起動後、5秒後にdormant modeへ移行、GPIO P6への立ち上がりエッジ入力でWake-up&通常動作へ復帰、再度5秒後にdormant modeへ、というループです。色々と試してみたのですが、dormant mode後に通常動作へ完全に復帰させるには上記のサンプルコードのようにするのが唯一見つけられた方法でした。(もっとスマートに出来そうな気はするのですが、、)
冒頭の「SHOW_MESSAGE」にてRP2040のUART(Tx)からクロック設定の様子をモニタ出来るようにしてあります(115200baud)。

実際に動作させてみると、クロック18MHzの設定で通常動作=9.1mA、dormant mode=2.3mA程でした。

dormant_t0

dormant_t2

どうもPaspberry Pi Picoボードに比べてSeeed XIAO RP2040は消費電流が多いような気がします。比較する良い方法が無いかとPaspberry Pi Pico Datasheetを眺めていたら、BOOTSEL mode (USB idle)での消費電流が8.7mAとの記載を見つけました。

bootsel_free

Seeed XIAO RP2040に5V電源のみ与えて、BOOTSEL modeに入れてみる(bootボタンを押しながらリセットする)と12.5mAでした。PicoとXIAOの回路的な差は殆ど無いので、余計なLED分か3.3Vレギュレータの効率の差か??

 

 

 

 

 

 

 

 

いずれにしてもSeeed XIAO RP2040の限界は見えた気はします。非常に小さなボードであることと、別途デバッガやプログラマを用意せずにソフト開発が可能なこと(つまり安く済ませたい)で選んだのですが、消費電力面でやはりちょっと厳しいという結果になりました。尤も「RP2040を触ってみたい」という別の面の欲求は満たされたわけですが。。

もうちょっと良い使い途を考えてみます → RP2040

コメント

タイトルとURLをコピーしました