Datasheet
© 2005 Microchip Technology Inc. Preliminary DS41236B-page 43
PIC12F508/509/16F505
Although the oscillator will operate with no external
capacitor (C
EXT = 0 pF), 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.
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).
Also, see the Electrical Specifications section for
variation of oscillator frequency due to V
DD for given
R
EXT/CEXT values, as well as frequency variation due
to operating temperature for given R, C and V
DD
values.
FIGURE 7-5: EXTERNAL RC
OSCILLATOR MODE
7.2.5 INTERNAL 4 MHz RC OSCILLATOR
The internal RC oscillator provides a fixed 4 MHz (nom-
inal) system clock at V
DD = 5V and 25°C, (see
Section 10.0 “Electrical Characteristics” for
information on variation over voltage and temperature).
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.
OSCCAL, when written to with the calibration value, will
“trim” the internal oscillator to remove process variation
from the oscillator frequency.
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
CEXT
VSS
OSC1
Internal
clock
PIC16F505
N
FOSC/4
OSC2/CLKOUT
PIC12F508
PIC12F509
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.
Note: The 0 bit of OSCCAL is unimplemented
and should be written as ‘0’ when modify-
ing OSCCAL for compatibility with future
devices.