PIC12F508/509/16F505
Although the oscillator will operate with no external
capacitor (CEXT = 0pF), we recommend using values
above 20 pF for noise and stability reasons. With no or
small external capacitance, the oscillation frequency
can vary dramatically due to changes in external
capacitances, such as PCB trace capacitance or
package lead frame capacitance.
In addition, a calibration instruction is programmed into
the last address of memory, which contains the calibra-
tion value for the internal RC oscillator. This location is
always uncode protected, regardless of the code-pro-
tect settings. This value is programmed as a MOVLW XX
instruction where XX is the calibration value, and is
placed at the Reset vector. This will load the W register
with the calibration value upon Reset and the PC will
then roll over to the users program at address 0x000.
The user then has the option of writing the value to the
OSCCAL Register (05h) or ignoring it.
Section 10.0 “Electrical Characteristics” shows RC
frequency variation from part-to-part due to normal
process variation. The variation is larger for larger val-
ues of R (since leakage current variation will affect RC
frequency more for large R) and for smaller values of C
(since variation of input capacitance will affect RC
frequency more).
OSCCAL, when written to with the calibration value, will
“trim” the internal oscillator to remove process variation
from the oscillator frequency.
Also, see the Electrical Specifications section for
variation of oscillator frequency due to VDD for given
REXT/CEXT values, as well as frequency variation due
to operating temperature for given R, C and VDD
values.
Note:
Erasing the device will also erase the pre-
programmed internal calibration value for
the internal oscillator. The calibration
value must be read prior to erasing the
part so it can be reprogrammed correctly
later.
FIGURE 7-5:
EXTERNAL RC
OSCILLATOR MODE
For the PIC12F508/509/16F505 devices, only bits
<7:1> of OSCCAL are implemented. Bits CAL6-CAL0
are used for calibration. Adjusting CAL6-CAL0 from
‘0000000’ to ‘1111111’ changes the clock speed. See
Register 4-5 for more information.
VDD
REXT
Internal
clock
OSC1
N
Note:
The 0 bit of OSCCAL is unimplemented
and should be written as ‘0’ when modify-
ing OSCCAL for compatibility with future
devices.
CEXT
VSS
PIC16F505
PIC12F508
PIC12F509
OSC2/CLKOUT
FOSC/4
7.2.5
INTERNAL 4 MHz RC OSCILLATOR
The internal RC oscillator provides a fixed 4 MHz (nom-
inal) system clock at VDD = 5V and 25°C, (see
Section 10.0 “Electrical Characteristics” for
information on variation over voltage and temperature).
© 2007 Microchip Technology Inc.
Preliminary
DS41236C-page 43