[[STM32>STM32#k157bfa9]]
*低消費電力モードの使い方 [#t4ca6094]

***電源ドメイン構成 [#lba7784a]
|電源ドメイン|電源端子|用途|h
|VDDA|VDDA,VSSA|ADC,温度センサ,リセット,PLL|
|VDD|VDD,VSS|I/O,STANDBY回路(WKUP,IWDG,RCC,CSR),電圧レギュレータ|
|V18|VDDから生成|コア,メモリ,デジタルペリフェラル|
|BKUP|VDD or VBAT|LSE 32K OSC,BKP,RCC BDCR,RTC|

***低消費電力モード [#reb54ba5]
|モード名|エントリ方法|ウェイクアップ|1.8Vドメインへの影響|VDDドメインへの影響|レギュレータ|h
|SLEEP|WFI|割り込み|CPU CLKのみOFF|なし|ON|
|SLEEP|WEI|ウェイクアップイベント|CPU CLKのみOFF|なし|ON|
|STOP|PDDS&br;LPDSビット+SLEEPDEEPビット+WFIかWFE|EXTIライン&br;EXTIレジスタ内で指定|全ての1.8VドメインCLKはOFF|HSI,HSE OSCはOFF|ON / 低消費電力モード|
|STANDBY|PDDS&br;LPDSビット+SLEEPDEEPビット+WFIかWFE|WKUPピン↑エッジ&br;RTCアラーム&br;NRSTピン内の外部リセット&br;IWDGリセット|全ての1.8VドメインCLKはOFF|HSI,HSE OSCはOFF|ON / 低消費電力モード|

***GPIOピンの設定 [#m77fc142]
AN2629 のサンプルコードでは、GPIO設定時にまず以下のようにしてから、必要なピンの設定をしている。
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
 RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | 
 RCC_APB2Periph_AFIO, ENABLE);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 GPIO_Init(GPIOB, &GPIO_InitStructure);
 GPIO_Init(GPIOC, &GPIO_InitStructure);
 GPIO_Init(GPIOD, &GPIO_InitStructure);
 GPIO_Init(GPIOE, &GPIO_InitStructure);
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB| 
 RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | 
 RCC_APB2Periph_AFIO, DISABLE);

一度全てのポートをアナログInputに設定している。GPIO_Mode_IN_FLOATING (リセット時のデフォルト)で、ピンを浮かしておくと、電流を食うため。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS