1
1
/*
2
- Author: Adam Garbo and Nathan Seidle
3
- Created: June 3rd, 2020
2
+ Author: Adam Garbo
3
+ Created: March 27th, 2021
4
4
License: MIT. See SparkFun Arduino Apollo3 Project for more information
5
5
6
6
This example demonstrates how to set an RTC alarm and enter deep sleep.
@@ -88,12 +88,10 @@ void goToSleep()
88
88
for (int x = 0 ; x < 50 ; x++)
89
89
am_hal_gpio_pinconfig (x, g_AM_HAL_GPIO_DISABLE);
90
90
91
- // Power down Flash, SRAM, cache
92
- am_hal_pwrctrl_memory_deepsleep_powerdown (AM_HAL_PWRCTRL_MEM_CACHE); // Turn off CACHE
93
- am_hal_pwrctrl_memory_deepsleep_powerdown (AM_HAL_PWRCTRL_MEM_FLASH_512K); // Turn off everything but lower 512k
94
- am_hal_pwrctrl_memory_deepsleep_powerdown (AM_HAL_PWRCTRL_MEM_SRAM_64K_DTCM); // Turn off everything but lower 64k
95
- // am_hal_pwrctrl_memory_deepsleep_powerdown(AM_HAL_PWRCTRL_MEM_ALL); //Turn off all memory (doesn't recover)
96
-
91
+ // Power down flash, SRAM, cache
92
+ am_hal_pwrctrl_memory_deepsleep_powerdown (AM_HAL_PWRCTRL_MEM_ALL); // Power down all cache and flash (~110 uA)
93
+ am_hal_pwrctrl_memory_deepsleep_retain (AM_HAL_PWRCTRL_MEM_SRAM_384K); // Retain all SRAM (~0.6 uA)
94
+
97
95
// Keep the 32kHz clock running for RTC
98
96
am_hal_stimer_config (AM_HAL_STIMER_CFG_CLEAR | AM_HAL_STIMER_CFG_FREEZE);
99
97
am_hal_stimer_config (AM_HAL_STIMER_XTAL_32KHZ);
@@ -107,9 +105,6 @@ void goToSleep()
107
105
// Power up gracefully
108
106
void wakeUp ()
109
107
{
110
- // Power up SRAM, turn on entire Flash
111
- am_hal_pwrctrl_memory_deepsleep_powerdown (AM_HAL_PWRCTRL_MEM_MAX);
112
-
113
108
// Go back to using the main clock
114
109
am_hal_stimer_config (AM_HAL_STIMER_CFG_CLEAR | AM_HAL_STIMER_CFG_FREEZE);
115
110
am_hal_stimer_config (AM_HAL_STIMER_HFRC_3MHZ);
0 commit comments