PFS122
8bit MTP MCU with 12-bit R-Type ADC
5.10 Power-Save and Power-Down
There are three operational modes defined by hardware: ON mode, Power-Save mode and Power-Down
modes. ON mode is the state of normal operation with all functions ON, Power-Save mode (“stopexe”) is the
state to reduce operating current and CPU keeps ready to continue, Power-Down mode (“stopsys”) is used
to save power deeply. Therefore, Power-Save mode is used in the system which needs low operating power
with wake-up periodically and Power-Down mode is used in the system which needs power down deeply with
seldom wake-up.
5.10.1 Power-Save mode (“stopexe”)
Using “stopexe” instruction to enter the Power-Save mode, only system clock is disabled, remaining all
the oscillator modules active. For CPU, it stops executing; however, for Timer16, counter keep counting
if its clock source is not the system clock. The wake-up sources for “stopexe” can be IO-toggle or
Timer16 counts to set values when the clock source of Timer16 is IHRC or ILRC modules, or wake-up
by comparator when setting GPCC.7=1 and GPCS.6=1 to enable the comparator wake-up function at
the same time. Wake-up from input pins can be considered as a continuation of normal execution, the
detail information for Power-Save mode shows below:
IHRC and EOSC oscillator modules: No change, keep active if it was enabled.
ILRC oscillator modules: must remain enabled, need to start with ILRC when be wakening up.
System clock: Disable, therefore, CPU stops execution.
MTP memory is turned off.
Timer counter: Stop counting if system clock is selected or the corresponding oscillator module is
disabled; otherwise, it keeps counting. (The Timer contains TM16, TM2, TM3.)
Wake-up sources:
a. IO toggle wake-up: IO toggling in digital input mode (PxC bit is 1 and PxDIER bit is 1)
b. Timer wake-up: If the clock source of Timer is not the SYSCLK, the system will be awakened
when the Timer counter reaches the set value.
c. Comparator wake-up: It need setting GPCC.7=1 and GPCS.6=1 to enable the comparator
wake-up function at the same time.
An example shows how to use Timer16 to wake-up from “stopexe”:
$ T16M
ILRC, /1, BIT8
// Timer16 setting
$ INTEGS BIT_R, xxx;
// BITx 0 to 1 will trigger (default)
…
WORD
STT16
stopexe;
…
count =
count;
0;
The initial counting value of Timer16 is zero and the system will be woken up after the Timer16 counts
256 ILRC clocks.
©Copyright 2020, PADAUK Technology Co. Ltd
Page 53 of 93
PDK-DS-PFS122-EN_V000-May 28, 2020