Microchip Technology Microstick for the 5V PIC24F K-series DM240013-2 DM240013-2 Ficha De Dados
Códigos do produto
DM240013-2
PIC24FV16KM204 FAMILY
DS30003030B-page 132
2013 Microchip Technology Inc.
10.2.2
IDLE MODE
Idle mode includes these features:
• The CPU will stop executing instructions.
• The WDT is automatically cleared.
• The system clock source remains active. By
• The CPU will stop executing instructions.
• The WDT is automatically cleared.
• The system clock source remains active. By
default, all peripheral modules continue to operate
normally from the system clock source, but can
also be selectively disabled (see
normally from the system clock source, but can
also be selectively disabled (see
• If the WDT or FSCM is enabled, the LPRC will
also remain active.
The device will wake from Idle mode on any of these
events:
• Any interrupt that is individually enabled
• Any device Reset
• A WDT time-out
On wake-up from Idle, the clock is reapplied to the CPU
and instruction execution begins immediately, starting
with the instruction following the PWRSAV instruction or
the first instruction in the ISR.
events:
• Any interrupt that is individually enabled
• Any device Reset
• A WDT time-out
On wake-up from Idle, the clock is reapplied to the CPU
and instruction execution begins immediately, starting
with the instruction following the PWRSAV instruction or
the first instruction in the ISR.
10.2.3
INTERRUPTS COINCIDENT WITH
POWER SAVE INSTRUCTIONS
POWER SAVE INSTRUCTIONS
Any interrupt that coincides with the execution of a
PWRSAV
PWRSAV
instruction will be held off until entry into Sleep
or Idle mode has completed. The device will then
wake-up from Sleep or Idle mode.
wake-up from Sleep or Idle mode.
10.2.3.1
Power-on Resets (
PORs
)
V
DD
voltage is monitored to produce PORs. When a true
POR occurs, the entire device is reset.
10.3
Ultra Low-Power Wake-up
The Ultra Low-Power Wake-up (ULPWU) on pin, RB0,
allows a slow falling voltage to generate an interrupt
without excess current consumption.
To use this feature:
1.
allows a slow falling voltage to generate an interrupt
without excess current consumption.
To use this feature:
1.
Charge the capacitor on RB0 by configuring the
RB0 pin to an output and setting it to ‘1’.
RB0 pin to an output and setting it to ‘1’.
2.
Stop charging the capacitor by configuring RB0
as an input.
as an input.
3.
Discharge the capacitor by setting the ULPEN
and ULPSINK bits in the ULPWCON register.
and ULPSINK bits in the ULPWCON register.
4.
Configure Sleep mode.
5.
Enter Sleep mode.
When the voltage on RB0 drops below V
IL
, the device
wakes up and executes the next instruction.
This feature provides a low-power technique for
periodically waking up the device from Sleep mode.
The time-out is dependent on the discharge time of the
RC circuit on RB0.
When the ULPWU module wakes the device from
Sleep mode, the ULPWUIF bit (IFS5<0>) is set. Soft-
ware can check this bit upon wake-up to determine the
wake-up source.
This feature provides a low-power technique for
periodically waking up the device from Sleep mode.
The time-out is dependent on the discharge time of the
RC circuit on RB0.
When the ULPWU module wakes the device from
Sleep mode, the ULPWUIF bit (IFS5<0>) is set. Soft-
ware can check this bit upon wake-up to determine the
wake-up source.
See
for initializing the ULPWU module.
EXAMPLE 10-2:
ULTRA LOW-POWER
WAKE-UP INITIALIZATION
WAKE-UP INITIALIZATION
A series resistor, between RB0 and the external
capacitor provides overcurrent protection for the
AN2/ULPWU/RB0 pin and enables software calibration
of the time-out (see
capacitor provides overcurrent protection for the
AN2/ULPWU/RB0 pin and enables software calibration
of the time-out (see
FIGURE 10-1:
SERIES RESISTOR
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 delay in Sleep.
This technique compensates for the affects of temper-
ature, voltage and component accuracy. The peripheral
can also be configured as a simple, programmable
Low-Voltage Detect (LVD) or temperature sensor.
discharge time of the capacitor. The charge time can
then be adjusted to provide the desired delay in Sleep.
This technique compensates for the affects of temper-
ature, voltage and component accuracy. The peripheral
can also be configured as a simple, programmable
Low-Voltage Detect (LVD) or temperature sensor.
/
/*******************************
// 1. Charge the capacitor on RB0
//*******************************
TRISBbits.TRISB0 = 0;
LATBbits.LATB0 = 1;
for(i = 0; i < 10000; i++) Nop();
//*****************************
//2. Stop Charging the capacitor
// on RB0
//*****************************
TRISBbits.TRISB0 = 1;
//*****************************
//3. Enable ULPWU Interrupt
//*****************************
IFS5bits.ULPWUIF = 0;
IEC5bits.ULPWUIE = 1;
IPC21bits.ULPWUIP = 0x7;
//*****************************
//4. Enable the Ultra Low Power
// Wakeup module and allow
// capacitor discharge
//*****************************
ULPWCONbits.ULPEN = 1;
ULPWCONbit.ULPSINK = 1;
//*****************************
//5. Enter Sleep Mode
//*****************************
Sleep();
//for sleep, execution will
//resume here
R
1
C
1
RB0