PIC24FJ32GA102-I/SO Microchip Technology, PIC24FJ32GA102-I/SO Datasheet - Page 113

IC MCU 16BIT 32KB FLASH 28SOIC

PIC24FJ32GA102-I/SO

Manufacturer Part Number
PIC24FJ32GA102-I/SO
Description
IC MCU 16BIT 32KB FLASH 28SOIC
Manufacturer
Microchip Technology
Series
PIC® XLP™ 24Fr

Specifications of PIC24FJ32GA102-I/SO

Program Memory Type
FLASH
Program Memory Size
32KB (11K x 24)
Package / Case
28-SOIC (7.5mm Width)
Core Processor
PIC
Core Size
16-Bit
Speed
32MHz
Connectivity
I²C, IrDA, SPI, UART/USART
Peripherals
Brown-out Detect/Reset, LVD, POR, PWM, WDT
Number Of I /o
21
Ram Size
8K x 8
Voltage - Supply (vcc/vdd)
2 V ~ 3.6 V
Data Converters
A/D 10x10b
Oscillator Type
Internal
Operating Temperature
-40°C ~ 85°C
Processor Series
PIC24FJ
Core
PIC
Data Bus Width
16 bit
Data Ram Size
8 KB
Interface Type
I2C/IrDA/SPI/UART
Maximum Clock Frequency
32 MHz
Number Of Programmable I/os
21
Number Of Timers
5
Maximum Operating Temperature
+ 85 C
Mounting Style
SMD/SMT
3rd Party Development Tools
52713-733, 52714-737, 53276-922, EWDSPIC
Development Tools By Supplier
PG164130, DV164035, DV244005, DV164005, DM240001, MA240020, DM240002, DM240011, DV164033
Minimum Operating Temperature
- 40 C
On-chip Adc
10-ch x 10-bit
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Eeprom Size
-
Lead Free Status / Rohs Status
Lead free / RoHS Compliant
9.2.4.2
When entering Deep Sleep mode, there are certain
circumstances that require a delay between setting the
DSEN bit and executing the PWRSAV instruction. These
can be generally reduced to three scenarios:
1.
2.
3.
In the first scenario, the application requires a wake-up
from Deep Sleep on the assertion of the INT0 pin or the
RTCC interrupt. In this case, three NOP instructions
must be inserted to properly synchronize the detection
of an asynchronous INT0 interrupt after the device
enters Deep Sleep mode. If the application does not
use wake-up on INT0 or RTCC, the NOP instructions
are optional.
In the second scenario, the application also uses
interrupts which can be briefly ignored. With these
applications, an interrupt event during the execution of
the NOP instructions may cause an ISR to be executed.
This means that more than three instruction cycles will
elapse before returning to the code and that the DSEN
bit will be cleared. To prevent the missed entry into
Deep Sleep, temporarily disable interrupts prior to
entering Deep Sleep mode. Invoking the DISI instruc-
tion for four cycles is sufficient to prevent interrupts
from disrupting Deep Sleep entry.
In the third scenario, interrupts cannot be ignored even
briefly; constant interrupt detection is required, even
during the interval between setting DSEN and
executing the PWRSAV instruction. For these cases, it is
possible to disable interrupts and test for an interrupt
condition, skipping the PWRSAV instruction if necessary.
Testing for interrupts can be accomplished by checking
the status of the CPUIRQ bit (INTTREG<15>). If an
unserviced interrupt is pending, this bit will be set. If
CPUIRQ is set prior to executing the PWRSAV instruc-
tion, the instruction is skipped. At this point, the DISI
instruction has expired (being more than 4 instructions
from when it was executed) and the application vectors
to the appropriate ISR. When the application returns, it
can either attempt to re-enter Deep Sleep mode or per-
form some other system function. In either case, the
application must have some functional code located,
following the PWRSAV instruction, in the event that the
PWRSAV instruction is skipped and the device does not
enter Deep Sleep mode.
 2010 Microchip Technology Inc.
Scenario (1): use an external wake-up source
(INT0) or the RTCC is used
Scenario (2): with application-level interrupts
that can be temporarily disabled
Scenario (3): with interrupts that must be
monitored
Special Cases when Entering Deep
Sleep Mode
PIC24FJ64GA104 FAMILY
Examples for implementing these cases are shown in
Example 9-2. It is recommended that an assembler, or
in-line C routine be used in these cases, to ensure that
the code executes in the number of cycles required.
EXAMPLE 9-2:
// Case 1: simplest delay scenario
//
asm("bset
asm("nop");
asm("nop");
asm("nop");
asm("pwrsav #0");
//
// Case 2: interrupts disabled
//
asm("disi #4");
asm("bset
asm("nop");
asm("nop");
asm("nop");
asm("pwrsav #0");
//
// Case 3: interrupts disabled with
// interrupt testing
//
asm("disi #4");
asm("bset
asm("nop");
asm("nop");
asm("btss
asm("pwrsav #0");
// continue with application code here
//
DSCON, #15");
DSCON, #15");
DSCON, #15");
INTTREG, #15");
IMPLEMENTING THE
SPECIAL CASES FOR
ENTERING DEEP SLEEP
DS39951C-page 113

Related parts for PIC24FJ32GA102-I/SO