NINA-W1 series - System integration manual
UBX-17005730 - R15
System description
Page 8 of 54
C1 - Public
1.4.2
Low power modes with LPO
An external 32.768 kHz LPO (Low Power Oscillator) signal is required for NINA-W10 series modules to
enable the lowest possible power consumption, frequency stability, and RTC accuracy in the various
ESP32 sleep and hibernate modes.
☞
Support for LPO in u-connectXpress is pending implementation.
On NINA-W106 series modules, the LPO can be implemented using an external oscillator. The
oscillator must be connected to the
LPO_IN
signal on
pin 5
. Also, a > 200 nF capacitor must be placed
between
pin
7
and ground. The amplitude range is 0.6 V < Vpp < VCC. If the input signal is square
wave, the bottom voltage should be higher than 200 mV.
☞
Pin
7
cannot be used as GPIO when LPO is used on NINA-W106 series modules.
For more information on the LPO, see the Espressif ESP32 datasheet [12], Espressif ESP32 Technical
reference manual [13], and Espressif ESP32 Hardware design guidelines [14].
☞
On NINA-W101 and NINA-W102, the functions of
pin
5
and
pin
7
are reversed.
It is possible to wake-up the module using several methods, out of which “wake-up on external GPIO”
requires attention.
On NINA-W10 series modules, isolate the ESP32 GPIO
pin
12
using
rtc_gpio_isolate()
to avoid
current leakage prior to the invocation of
esp_deep_sleep_start()
:
void
cbPWR_MGR_enterDeepSleep
()
{
rtc_gpio_isolate
(GPIO_NUM_12);
esp_deep_sleep_start
();
}
The
rtc_gpio_isolate()
function disables input, output, pullup, pulldown, and enables the hold
feature for an RTC I/O pin. Use this function if any other RTC I/O pin also needs to be disconnected
from ESP32-internal circuits in deep sleep and hibernation modes. Disconnecting minimizes leakage
currents. The use of this function is typically necessary when an external pull-up or pull-down is used
on a pin that also contains a pull-up or pull-down.
In other cases, it might be possible to manually use the internal pull-ups and pull-downs of the ESP32
using the specific enable/disable functions, followed by
rtc_gpio_hold_en()
.
void
cbPWR_MGR_enterDeepSleep
()
{
rtc_gpio_set_direction
(
EXT_WAKEUP_1_GPIO
, RTC_GPIO_MODE_INPUT_ONLY);
rtc_gpio_pullup_dis
(
EXT_WAKEUP_1_GPIO
);
rtc_gpio_pulldown_en
(
EXT_WAKEUP_1_GPIO
);
rtc_gpio_hold_en
(
EXT_WAKEUP_1_GPIO
);
esp_deep_sleep_start
();
}
The
rtc_gpio_hold_en()
preserves the last known value during deep sleep and hibernate modes.
See the Espressif ESP32 data sheet [12] for more information about ESP32-internal circuits and
external GPIOs capable of waking up the module.
The power consumption in the various sleep modes is affected by the RTC clock source. Define the
appropriate RTC clock source, used during the sleep modes, by setting the
CONFIG_ESP32_RTC_CLK_SRC
configuration option accordingly.