Microchip Technology MCU PIC PIC18F87K22-I/PTRSL TQFP-80 MCP PIC18F87K22-I/PTRSL Data Sheet

Product codes
PIC18F87K22-I/PTRSL
Page of 550
PIC18F87K22 FAMILY
DS39960D-page 202
 2009-2011 Microchip Technology Inc.
The Lower Drive Level mode is highly optimized for
extremely low-power consumption. It is not intended to
drive all types of 32.768 kHz crystals. In the Low Drive
Level mode, the crystal oscillator circuit may not work
correctly if excessively large discrete capacitors are
placed on the SOSCO and SOSCI pins. This mode is
designed to work only with discrete capacitances of
approximately 3 pF-10 pF on each pin.
Crystal manufacturers usually specify a CL (Capaci-
tance Load) rating for their crystals. This value is
related to, but not necessarily the same as, the values
that should be used for C1 and C2 in 
.
For more details on selecting the optimum C1 and C2
for a given crystal, see the crystal manufacturer’s appli-
cations information. The optimum value depends, in
part, on the amount of parasitic capacitance in the
circuit, which is often unknown. For that reason, it is
highly recommended that thorough testing and valida-
tion of the oscillator be performed after values have
been selected.
14.5.1
USING SOSC AS A 
CLOCK SOURCE
The SOSC oscillator is also available as a clock source
in power-managed modes. By setting the System
Clock Select bits, SCS<1:0> (OSCCON<1:0>), to ‘01’,
the device switches to SEC_RUN mode, and both the
CPU and peripherals are clocked from the SOSC oscil-
lator. If the IDLEN bit (OSCCON<7>) is cleared and a
SLEEP
 instruction is executed, the device enters
SEC_IDLE mode. Additional details are available in
Whenever the SOSC oscillator is providing the clock
source, the SOSC System Clock Status flag,
SOSCRUN (OSCCON2<6>), is set. This can be used
to determine the controller’s current clocking mode. It
can also indicate the clock source currently being used
by the Fail-Safe Clock Monitor (FSCM).
If the Clock Monitor is enabled and the SOSC oscillator
fails while providing the clock, polling the SOCSRUN
bit will indicate whether the clock is being provided by
the SOSC oscillator or another source.
14.5.2
SOSC OSCILLATOR LAYOUT 
CONSIDERATIONS
The SOSC oscillator circuit draws very little power
during operation. Due to the low-power nature of the
oscillator, it may also be sensitive to rapidly changing
signals in close proximity. This is especially true when
the oscillator is configured for extremely Low-Power
mode, SOSCSEL<1:0> (CONFIG1L<4:3>) = 01.
The oscillator circuit, displayed in 
, should
be located as close as possible to the microcontroller.
There should be no circuits passing within the oscillator
circuit boundaries other than V
SS
 or V
DD
If a high-speed circuit must be located near the
oscillator, it may help to have a grounded guard ring
around the oscillator circuit. The guard, as displayed in
could be used on a single-sided PCB or in
addition to a ground plane. (Examples of a high-speed
circuit include the ECCP1 pin, in Output Compare or
PWM mode, or the primary oscillator using the
OSC2 pin.)
FIGURE 14-3:
OSCILLATOR CIRCUIT 
WITH GROUNDED 
GUARD RING
In the Low Drive Level mode, SOSCSEL<1:0> = 01, it is
critical that RC2 I/O pin signals be kept away from the
oscillator circuit. Configuring RC2 as a digital output, and
toggling it, can potentially disturb the oscillator circuit,
even with a relatively good PCB layout. If possible, either
leave RC2 unused or use it as an input pin with a slew
rate limited signal source. If RC2 must be used as a
digital output, it may be necessary to use the Higher
Drive Level Oscillator mode (SOSCSEL<1:0> = 11) with
many PCB layouts.
Even in the Higher Drive Level mode, careful layout
procedures should still be followed when designing the
oscillator circuit.
In addition to dV/dt induced noise considerations, it is
important to ensure that the circuit board is clean. Even
a very small amount of conductive soldering flux
residue can cause PCB leakage currents that can
overwhelm the oscillator circuit.
14.6
Timer1 Interrupt
The TMR1 register pair (TMR1H:TMR1L) increments
from 0000h to FFFFh and rolls over to 0000h. The
Timer1 interrupt, if enabled, is generated on overflow
which is latched in interrupt flag bit, TMR1IF
(PIR1<0>). This interrupt can be enabled or disabled
by setting or clearing the Timer1 Interrupt Enable bit,
TMR1IE (PIE1<0>).
V
DD
OSC1
V
SS
OSC2
RC0
RC1
RC2
Note: 
Not drawn to scale.