LPM3.5へは全てのActive Modeから状態遷移でき、AM_LDO_VCORE0に復帰します。
出典:MSP432P4xx Technical Reference Manual REVISED June 2019版 SLAU356I(Texas Instruments社)
手順は以下の通りです。
1. LOCKxxxxビットをクリア
PCMCTL1[LOCKLPM5] = 0, PCMCTL1[LOCKBKUP] = 0 となっていることを確認します。
各ビットがセットされているときは、0をライトしてクリアします。
【PCMの構成】
出典:MSP432P401R データシート REVISED June 2019版(Texas Instruments社)
【PCMCTL1レジスタ構成】
出典:MSP432P401R データシート REVISED June 2019版(Texas Instruments社)
【PCMCTL1レジスタのLOCKBKUP, LOCKLPM5ビット割り付け】
出典:MSP432P401R データシート REVISED June 2019版(Texas Instruments社)
2. GPIOの設定
全てのGPIOをフローティング状態がないように設定します。
3. RTCとWDTの設定
LPM3.5では、RTC (Real Time Clock)とWDT (Watchdog Timer)をイネーブルに設定できます。
なお、LPM3.5に状態遷移するときWDTは、インターバル・タイマ・モード(WDTCT[WDTTMSEL] = 1)
に設定する必要があります。
4. Wakeupのための割り込み要因を設定
Wakeupに使用する割り込みを有効にします。
Wakeupに使用可能な割り込み要因は以下となります。
5. LPMRの設定
PCMCTL0[LPMR] = Ah に設定します。
【PCMの構成】
出典:MSP432P401R データシート REVISED June 2019版(Texas Instruments社)
【PCMCTL0レジスタ構成】
【PCMCTL0レジスタのLPMRビット割り付け】
出典:MSP432P4xx Technical Reference Manual REVISED June 2019版(Texas Instruments社)
6. SCB SCR[SLEEPDEEP] = 1
SCB (System Control Block) のSCR (System Control Register) レジスタのSLEEPDEEPフィールド
をセットします。SCBの各レジスタのアドレスは、ベース・アドレス0xE000_E000hからの
オフセット値で設定されます。
【SCBの構成】
【SCRレジスタの構成】
【SCRレジスタのビット割り付け】
出典:MSP432P4xx Technical Reference Manual REVISED June 2019版(Texas Instruments社)
7. LPM3.5へ状態遷移
WFIあるいはWFEインストラクションを実行するか、
SCR[SLEEPONEXIT] =1の状態で保留中の最後の割り込みを実行後、LPM3.5に状態遷移します。