アプリケーション内における低消費電力化の実現方法
物理的な法則によると、マイコンの消費電力はクロック周波数の増加に応じて増加する。そのため、ユーザは消費電力と性能の最適な比率を見付け出す必要がある。多くの場合において、消費電力は要求される性能に合わせてシステムおよびペリフェラル周波数を調整することにより、抑えることができる。STM32シリーズはこのための「低速モード」や「低消費電力モード」を提供している。
システムおよびペリフェラル周波数
まず、アプリケーションが最高周波数で動作する必要がない場合は、PLLもしくはプリスケーラ分周器を使用して、HCLCKを低速化することが可能である。また、APB1およびAPB2プリスケーラを使用して、ペリフェラルバス周波数を低速化することができる。
クロックゲーティング
使用するペリフェラルにだけクロックを提供し、消費電力を最適化する。
プリフェッチおよびハーフサイクル
プリフェッチ機能は、性能を向上させる際に役立つ機能である。アプリケーションにおいて、プリフェッチを使用することで、フラッシュメモリウェイトステートによる性能のロスを回避する。また、フラッシュメモリウェイトステートに敏感でないアプリケーションにおいては、ハーフサイクル機能が消費電力を抑えるための効果を発揮する。
ただし、クロックシステムはHCLKと等しくなくてはならないため、ハーフサイクルコンフィギュレーションは、AHB上のプリスケーラとの組み合わせでは利用不可である。したがって、この特徴は内蔵の8MHz RC(HSI)オシレータもしくは外部の高速オシレータからの直接クロックでのみ使用することができる。
内蔵もしくは外部オシレータ
外部オシレータのかわりに内蔵オシレータを使用することでも、消費電力を抑えることができる。しかしながら、最大のシステムクロック周波数が64MHzで、外部クリスタルオシレータやセラミック共振回路に比べると精度は劣る。
SLEEPモード
アプリケーションがイベントや割り込みを待っている間、STM32シリーズをSLEEPモードに切り替えることで消費電力を抑えることが可能である。
バッテリによって電源を供給する組み込み機器などは、つねに動作しているわけではない。例えば産業機器などにおいては、センサからの情報を待ち、ウェイクアップし、処理やほかのタスクを起動させる。こういった機器において、マイコンは外部イベントを待ち、この段階で消費電力を抑える必要がある。
Cortex-M3コアは低消費電力アプリケーションに対して非常に効率的なコアレベルの命令を統合している。
「節電」という観点から見ると、STANDBYモードはより効率的であるが、アプリケーションはその都度リセット状態から再スタートし、アプリケーションを再初期化する時間が必要になる。「低消費電力」という観点から見ると、STOPモードはSTANDBYモードほど効率的ではないが、コンテキストやRAMのコンテンツを保持するという利点がある。
消費電力を抑える一般的な方法は、周波数選択、クロックゲーティング、ハーフサイクル、内蔵オシレータおよび低消費電力モードの使用ということが挙げられる。