66.3.2.3.2 ULP1 Mode

Unlike ULP0 mode, all the clocks are off in ULP1 mode, but the number of wake-up sources is limited to the list below:

  • WKUP0 pin (level transition, configurable debouncing)
  • WKUP1 Secumod wake-up signal
  • WKUP2 pin to WKUP9 pin (shared with PIOBU0 to PIOBU7)
  • RTC alarm
  • USB Resume from Suspend mode
  • SDMMC card detect
  • RXLP event
  • ACC event
  • Any asysnchronous partial wake-up event coming from TWI, FLEXCOMx, SPI, or ADC

The sequence to enter the ULP1 mode is detailed below. The code used to enter this mode must be executed out of the internal SRAM.

  1. Set the DDR to Self-Refresh mode.
  2. Set the events to enable a system wake-up.
  3. Disable all peripheral clocks.
  4. Set the I/Os to an appropriate state and disable the USB transceivers (refer to the section Special Function Registers (SFR)).
  5. Switch the system clock to the 12 MHz RC oscillator.
  6. Disable the PLLs and the main oscillator.
  7. Enter the ULP1 mode by either:
    1. setting the WAITMODE bit in CKGR_MOR, or
    2. setting the LPM bit in PMC_FSMR and executing the processor WaitForEvent (WFE) instruction.
  8. After setting the WAITMODE bit or using the WFE instruction, wait for the PMC_SR.MCKRDY bit to be set.