IoT向き省電力マイコンNXP LPC824の動作モードを、消費電力の高い順に表にしました。
LPC824 Operation Mode List
出典は、ユーザマニュアル6章 電力管理のTable 59と64です。このTableは、詳細ですが解りにくいので、モード一覧表を作成しました。この表で概要を掴んだ後なら、Table59/64の理解が進むと思います。
※Runへの復帰時間は、ユーザマニュアル2014/09/18とデータシート2014/10/01、Cortex-M0+ Technical Reference Manualを参照しましたが不明でした。但し、不明でも問題はないと思います(後述)。
LPC824動作モード解説
LPC824動作モードは、Runを含めて5モードあります。
基本3モード:Run/Sleep/Power-down
「Run」と、MCUを停止し全周辺回路の動作/停止が設定可能な「Sleep」、全動作停止の「Power-down」、これら3モードは、LPC824に限らず全マイコンに共通の動作モードです。
低消費電力でマイコンを動作させる場合は、最も消費電力が大きいMCUを止め、必要な周辺回路のみを動作させるSleepを使います。そして、動作中周辺回路からの割込みによりSleepからRunへ復帰します。IRCは、動作させたままですので、SleepからRunへの復帰は非常に短時間で、通常は、問題にする必要はありません。
省電力2モード:Deep-sleep/Deep power-down
ソフトで動作/停止を設定できるUSART、SPI、I2Cの通信系とWWDT:ウオッチドックタイマ、WKT:ウエイクアップタイマ、BOD:ブラウンアウトディテクト以外の周辺回路を停止するのがLPC824の「Deep-sleep」です。
Deep-sleepとPower-downの差は、IRCを止めるか否かです。このため、Deep-sleepの方が、Power-downよりも早くRunへ復帰できます。この復帰時間も今ところ不明ですが、Sleepと同様ですので、問題なしと思います。
これに対し、Power-downは、IRCも停止するのでRunへの復帰には、時間がかかります。
動作/停止を設定できるWKT以外は全てを停止するのが「Deep power-down」です。このDeep power-downが、消費電力最低のモードです。
Power-downとDeep power-downともに、バッテリ寿命が尽きて供給電圧が低下した場合などに使用するモードだと推測しました。
この状態からの復帰には、MCUリセットが必ずある通常起動手順か、または、この両モードで動作中ならば、割込みでRunへ復帰する2通りの方法があります。
割込み復帰の場合は、メモリに動作時のデータが残っており、これが活用できる可能性があります。MCUリセットでRunへ復帰する場合は、メモリも初期化されるので、ここが違います。
もちろん、バッテリを充電するなどの正常動作ができる環境を整えた後に、上記復帰手順の実施が必要です。結局、Power-downやDeep power-downは、メモリ初期化をスルーするために使うと考えて良いと思います。このため、復帰時間は、問題になりません。
* * *
LPC824の5動作モードを解説しました。LPC824は、クロックソースが、IRCか外部発振器/クロックのため、比較的シンプルです。また、復帰時間の絶対値は気になりますが、問題にする必要は無さそうです。マニュアル記載がないのは、このためと推測します。
LPC824のDeep-sleepは、新しい動作モードというよりも、USARTなどの特定周辺回路のみを動作/停止設定可能としたSleepの派生モードです。使い方も通常のSleepと同じです。または、復帰時間を気にする必要のないPower-downの派生モードと考えても良いでしょう。従って、省電力動作の理解やプログラミングには解りやすいマイコンと言えます。
LPC824と同じARM Cortex-M0+コアを持つFreescale Kinetis Lシリーズは、11モードもあります。ルネサス RL78/I1Dも5モードですが、クロックソースが高速/低速の系統があり、復帰時間への配慮が必要です。これらマイコンの動作モードについては、別機会に解説する予定です。