SleepWalking

Taking the temperature monitoring application one step further on the road to low power consumption, the SleepWalking feature available in devices from the SAM D and SAM L series can be used. SleepWalking is when a device can provide its peripherals with a clock only when needed, without waking the CPU. This feature is enabled by writing a one to the On Demand bit in the corresponding clock source register (XOSC/XOSC32K/OSC32K/OSC8M.ONDEMAND).

For the temperature monitoring application this means that the ADC's peripheral clock (GCLK_ADC) will only be running when the ADC is converting. When the ADC receives the overflow event from the RTC, it will request its generic clock from the Generic Clock Controller and GCLK_ADC will start running. GCLK_ADC will stop as soon as the ADC conversion is completed.
Note: When using STANDBY as sleep mode the peripheral must be configured to run in standby. Writing a one to the Run in Standby bit in the peripheral's control register, Control A for ADC (CTRLA.RUNSTDBY), will enable the peripheral to run in standby.
Devices in the SAM L21 series have five power domains where unused power domains can be set to a low power state. Setting power domains to a low power state can be configured to happen dynamically during SleepWalking. For the temperature monitoring application, the device can be configured to set the power domain where the ADC is located to a low power state when the ADC is idle. For further information about power domains, refer to Performance Levels and Power Domains.
Note: Using dynamically power domains during SleepWalking will result in a responsiveness penalty, as turning on power domains is relatively time consuming.