Datasheet

PIC17C7XX
DS30289C-page 194 1998-2013 Microchip Technology Inc.
17.4 Power-down Mode (SLEEP)
The Power-down mode is entered by executing a
SLEEP instruction. This clears the Watchdog Timer and
postscaler (if enabled). The PD
bit is cleared and the
TO
bit is set (in the CPUSTA register). In SLEEP mode,
the oscillator driver is turned off. The I/O ports maintain
their status (driving high,low, or hi-impedance input).
The MCLR/
VPP pin must be at a logic high level
(V
IHMC). A WDT time-out RESET does not drive the
MCLR/
VPP pin low.
17.4.1 WAKE-UP FROM SLEEP
The device can wake-up from SLEEP through one of
the following events:
Power-on Reset
Brown-out Reset
External RESET input on MCLR/
VPP pin
WDT Reset (if WDT was enabled)
Interrupt from RA0/INT pin, RB port change,
T0CKI interrupt, or some peripheral interrupts
The following peripheral interrupts can wake the device
from SLEEP:
Capture interrupts
USART synchronous slave transmit interrupts
USART synchronous slave receive interrupts
A/D conversion complete
SPI slave transmit/receive complete
•I
2
C slave receive
Other peripherals cannot generate interrupts since dur-
ing SLEEP, no on-chip Q clocks are present.
Any RESET event will cause a device RESET. Any
interrupt event is considered a continuation of program
execution. The TO
and PD bits in the CPUSTA register
can be used to determine the cause of a device
RESET. The PD
bit, which is set on power-up, is
cleared when SLEEP is invoked. The TO
bit is cleared
if WDT time-out occurred (and caused a RESET).
When the SLEEP instruction is being executed, the next
instruction (PC + 1) is pre-fetched. For the device to
wake-up through an interrupt event, the corresponding
interrupt enable bit must be set (enabled). Wake-up is
regardless of the state of the GLINTD bit. If the GLINTD
bit is set (disabled), the device continues execution at
the instruction after the SLEEP instruction. If the
GLINTD bit is clear (enabled), the device executes the
instruction after the SLEEP instruction and then
branches to the interrupt vector address. In cases
where the execution of the instruction following SLEEP
is not desirable, the user should have a NOP after the
SLEEP instruction.
The WDT is cleared when the device wakes from
SLEEP, regardless of the source of wake-up.
17.4.1.1 Wake-up Delay
When the oscillator type is configured in XT or LF
mode, the Oscillator Start-up Timer (OST) is activated
on wake-up. The OST will keep the device in RESET
for 1024T
OSC. This needs to be taken into account
when considering the interrupt response time when
coming out of SLEEP.
FIGURE 17-2: WAKE-UP FROM SLEEP THROUGH INTERRUPT
Note: If the global interrupt is disabled (GLINTD
is set), but any interrupt source has both its
interrupt enable bit and the corresponding
interrupt flag bit set, the device will imme-
diately wake-up from SLEEP. The TO bit is
set and the PD
bit is cleared.
Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4 Q2Q1 Q3 Q4
OSC1
CLKOUT
(4)
INT
INTF Flag
GLINTD bit
INSTRUCTION FLOW
PC
Instruction
Fetched
Instruction
Executed
Interrupt Latency
(2)
PC
PC+1
PC+2
0004h
0005h
Dummy Cycle
Inst (PC) = SLEEP
Inst (PC+1)
Inst (PC-1)
SLEEP
TOST
(2)
Processor
in SLEEP
Inst (PC+2)
Inst (PC+1)
Note 1: XT or LF oscillator mode assumed.
2: T
OST = 1024TOSC (drawing not to scale). This delay will not be there for RC osc mode.
3: When GLINTD = 0, processor jumps to interrupt routine after wake-up. If GLINTD = 1, execution will continue in line.
4: CLKOUT is not available in these osc modes, but shown here for timing reference.
(RA0/INT pin)
'0' or '1'