90 パワーマネジメント概要 (説明のみ)(工事中)

電源というと、簡単にはスイッチON/OFFのことですけど、実際はもっと複雑な事情を管理しなくちゃいけません.

パワーオンリセット、パワーダウン、スタンバイ、バッテリー動作、RTC などなど.

そういうのをパワーマネジメントと呼びます.

このページでは、プログラムする前にSTM32の電源関連機能を整理します.

パワー系統ブロック図

●メイン電源VDDは2~3.6V

●ただしCPU coreは1.8Vで動きます.そのためのLDOを内蔵しています.

●VDDA/VSSAはアナログ回路専用電源です.ADC+DAC+温度センサ+リセット+PLLがアナログ回路です.リセットがアナログ回路なのはコンパレータを含むからでしょうか? 下図によるとVREF+は2.4V以上となっているので、もしかしたらVDD<2.4VだとADCやDACが動かないのかもしれませんが、仕様は未確認です.

●STM32-DISCOVERYのCPUではVREF+はVDDAに、VREF-はVSSAに内部接続されており、pinは存在しない.

●VBATはバッテリーの接続端子です.バッテリーで駆動されるのは、内部32kHz発振器+Backup+clock+RTC です.Low Voltage detectorが作動すると、それまでVDDから電源をもらって動いていたこれらの回路がVBATから電源をもらうように切り替わります.

VBATの注意

VBATにはbatteryを接続しますが、データシートによると、battery-VBAT間にシリーズにshotkey diodeを挿入することがオススメされているようです.なぜか? VDDが低下するとVBATに切り替わりますが、一瞬VDDとVBATがshortするタイミングがあるそうです.その瞬間にVDD→VBATへ電流が流れ、batteryにその電流が流入します.その電流を回避するためにdiodeを挿入しておくのがよいそうです.

batterを使わないときはVBAT=VDDに接続すればOKです.

VBATで駆動される回路の外部pinのアサイン

●VDDが生きているとき

- PC14 と PC15 は GPIO または LSE として使える

- PC13 は GPIO, TAMPER, RTC Calibration Clock, RTC Alarm or second output として使える

●VDDが落ちているとき(VBATで動いているとき)

- PC14 と PC15 は LSE としてのみ使える

- PC13 は TAMPER, RTC Alarm or Second output として使える

可変電圧監視回路 PVD

VDDとVDDAの電圧を監視することができる.

PVD出力によってEXTI16割り込みを発生できる.

監視電圧は以下のレジスタで可変できる.

PLS[2:0]: PVD level selection.

000: 2.2V

001: 2.3V

010: 2.4V

011: 2.5V

100: 2.6V

101: 2.7V

110: 2.8V

111: 2.9V

STM32のPSモード

RUN MODE: 全部 on

SLEEP MODE: CPU clock off peripheral clock on

STOP MODE: 全clock off

STANDBY MODE: 1.8Vレギュレータoff

1.8VレギュレータのPSモード

RUN MODE: いろんな回路に電源供給する

STOP MODE: SRAMとレジスタのみに電源供給する

STANDBY MODE: 1.8Vレギュレータはoffになる.ゆえにVBATでbackupされている回路以外は全部死ぬ

SLEEP MODEに入るには出るには

よくわかりません.

IO pinはRUN MODE時のステートのまま保持する.

STOP MODEに入るには出るには

regiter操作レベルではよくわかりませんが、ライブラリ関数に PWR_EnterSTOPMode (uint32_t PWR_Regulator, uint8_t PWR_STOPEntry) という名前がそのものな関数があります.

IO pinはRUN MODE時のステートのまま保持する.

STANDBY MODEに入るには出るには

regiter操作レベルではよくわかりませんが、ライブラリ関数に PWR_EnterSTANDBYMode(void) という名前がそのものな関数があります.

IO pinはhigh-zになりますが、一部例外的に生きてるpinがある.

● Reset

● TAMPER (tamper または calibration outに設定されているとき)

● WKUP (enableにされているなら)

Auto-wakeup (AWU)

RTCを利用して、一定時間毎にSTOP MODEあるいはSTANDBY MODEから目覚めさせることができます.