The ADuCRF101 is based around a ARM Cortex M3 low power core with specific low power modes.
How to configure the part for SLEEP and SLEEPDEEP mode to achieve lowest power consumption correctly?
What sequence to follow?
On current ADuCRF101 silicon, rev B, there are 5 sleep modes:
- mode 5 or HIBERNATE, where the cortex is in DEEPSLEEP mode and the rest of the device in mode 5.
- mode 0 where only the cortex is in SLEEP mode
- mode 1, 2 and 3 where the cortex is in SLEEP mode and different parts of the device are also in sleep mode.
To enter mode 5, DEEPSLEEP, the following sequence should be used:
SCR = 0x00000004; // set the DEEPSLEEP bit in the cortex SCR register
PWRMDE = 5
Wait until WICENAK = 1
Note that if you are in debug mode, the WICENAK will not be set.
To enter mode 0, 1, 2 or 3,
PWRMDE = x (x = 0, 1, 2 or 3)
Retrieving data ...