OVMS3-idf/examples/system/deep_sleep
Ivan Grokhotkov 6353bc40d7 Add support for 32k XTAL as RTC_SLOW_CLK source
- RTC_CNTL_SLOWCLK_FREQ define is removed; rtc_clk_slow_freq_get_hz
  function can be used instead to get an approximate RTC_SLOW_CLK
  frequency

- Clock calibration is performed at startup. The value is saved and used
  for timekeeping and when entering deep sleep.

- When using the 32k XTAL, startup code will wait for the oscillator to
  start up. This can be possibly optimized by starting a separate task
  to wait for oscillator startup, and performing clock switch in that
  task.

- Fix a bug that 32k XTAL would be disabled in rtc_clk_init.

- Fix a rounding error in rtc_clk_cal, which caused systematic frequency
  error.

- Fix an overflow bug which caused rtc_clk_cal to timeout early if the
  slow_clk_cycles argument would exceed certain value

- Improve 32k XTAL oscillator startup time by introducing bootstrapping
  code, which uses internal pullup/pulldown resistors on 32K_N/32K_P
  pins to set better initial conditions for the oscillator.
2017-04-26 12:43:22 +08:00
..
main Add support for 32k XTAL as RTC_SLOW_CLK source 2017-04-26 12:43:22 +08:00
Makefile add deep sleep wake up example 2017-02-22 18:40:31 +08:00
README.md add deep sleep wake up example 2017-02-22 18:40:31 +08:00
sdkconfig.defaults add deep sleep wake up example 2017-02-22 18:40:31 +08:00

Example: deep sleep

This example illustrates usage of deep sleep mode and various wakeup sources.

The following wake up sources are configured:

  • Timer: wake up the chip in 20 seconds
  • EXT1: wake up the chip if any of the two buttons are pressed (GPIO25, GPIO26)
  • Touch: wake up the chip if any of the touch pads are pressed (GPIO32, GPIO33)
  • ULP: wake up when the chip temperature changes by more than ~5 degrees Celsius (this value hasn't been characterized exactly yet).