English
Language : 

PIC16F631_08 Datasheet, PDF (65/306 Pages) Microchip Technology – 20-Pin Flash-Based, 8-Bit CMOS Microcontrollers with nanoWatt Technology
PIC16F631/677/685/687/689/690
4.2.4 ULTRA LOW-POWER WAKE-UP
The Ultra Low-Power Wake-up (ULPWU) on RA0 allows
a slow falling voltage to generate an interrupt-on-change
on RA0 without excess current consumption. The mode
is selected by setting the ULPWUE bit of the PCON
register. This enables a small current sink, which can be
used to discharge a capacitor on RA0.
Follow these steps to use this feature:
a) Charge the capacitor on RA0 by configuring the
RA0 pin to output (= 1).
b) Configure RA0 as an input.
c) Enable interrupt-on-change for RA0.
d) Set the ULPWUE bit of the PCON register to
begin the capacitor discharge.
e) Execute a SLEEP instruction.
When the voltage on RA0 drops below VIL, an interrupt
will be generated which will cause the device to
wake-up and execute the next instruction. If the GIE bit
of the INTCON register is set, the device will then call
the interrupt vector (0004h). See Section 4.4.2 “Inter-
rupt-on-change”
and
Section 14.3.3
“PORTA/PORTB Interrupt” for more information.
This feature provides a low-power technique for
periodically waking up the device from Sleep. The
time-out is dependent on the discharge time of the RC
circuit on RA0. See Example 4-2 for initializing the
Ultra Low-Power Wake-up module.
A series resistor between RA0 and the external
capacitor provides overcurrent protection for the
RA0/AN0/C1IN+/ICSPDAT/ULPWU pin and can allow
for software calibration of the time-out (see Figure 4-1).
A timer can be used to measure the charge time and
discharge time of the capacitor. The charge time can
then be adjusted to provide the desired interrupt delay.
This technique will compensate for the affects of
temperature, voltage and component accuracy. The
Ultra Low-Power Wake-up peripheral can also be
configured as a simple Programmable Low-Voltage
Detect or temperature sensor.
Note:
For more information, refer to Application
Note AN879, “Using the Microchip Ultra
Low-Power Wake-up Module” (DS00879).
EXAMPLE 4-2:
ULTRA LOW-POWER
WAKE-UP INITIALIZATION
BCF
BCF
BSF
BSF
BCF
BSF
BCF
BCF
CALL
BSF
BSF
BSF
MOVLW
MOVWF
BCF
SLEEP
NOP
STATUS,RP0
STATUS,RP1
PORTA,0
STATUS,RP1
ANSEL,0
STATUS,RP0
STATUS,RP1
TRISA,0
CapDelay
PCON,ULPWUE
IOCA,0
TRISA,0
B’10001000’
INTCON
STATUS,RP0
;Bank 0
;
;Set RA0 data latch
;Bank 2
;RA0 to digital I/O
;Bank 1
;
;Output high to
;charge capacitor
;Enable ULP Wake-up
;Select RA0 IOC
;RA0 to input
;Enable interrupt
;and clear flag
;Bank 0
;Wait for IOC
;
© 2008 Microchip Technology Inc.
DS41262E-page 63