Microchip Technology MA330019 데이터 시트

다운로드
페이지 460
© 2007-2012 Microchip Technology Inc.
DS70291G-page  153
dsPIC33FJ32MC302/304, dsPIC33FJ64MCX02/X04 AND dsPIC33FJ128MCX02/X04
9.4
Clock Switching Operation
Applications are free to switch among any of the four 
clock sources (Primary, LP, FRC and LPRC) under 
software control at any time. To limit the possible side 
effects of this flexibility, dsPIC33FJ32MC302/304, 
dsPIC33FJ64MCX02/X04  and dsPIC33FJ128MCX02/
X04 devices have a safeguard lock built into the switch 
process.
9.4.1
ENABLING CLOCK SWITCHING
To enable clock switching, the FCKSM1 Configuration 
bit in the Configuration register must be programmed 
to ‘0’. (Refer to 
 for 
further details.) If the FCKSM1 Configuration bit is 
unprogrammed (‘1’), the clock switching function and 
Fail-Safe Clock Monitor function are disabled. This is 
the default setting. 
The NOSC control bits (OSCCON<10:8>) do not 
control the clock selection when clock switching is 
disabled. However, the COSC bits (OSCCON<14:12>) 
reflect the clock source selected by the FNOSC 
Configuration bits. 
The OSWEN control bit (OSCCON<0>) has no effect 
when clock switching is disabled. It is held at ‘0’ at all 
times.
9.4.2
OSCILLATOR SWITCHING SEQUENCE
Performing a clock switch requires this basic 
sequence:
1.
If desired, read the COSC bits 
(OSCCON<14:12>) to determine the current 
oscillator source.
2.
Perform the unlock sequence to allow a write to 
the OSCCON register high byte.
3.
Write the appropriate value to the NOSC control 
bits (OSCCON<10:8>) for the new oscillator 
source.
4.
Perform the unlock sequence to allow a write to 
the OSCCON register low byte.
5.
Set the OSWEN bit (OSCCON<0>) to initiate the 
oscillator switch.
Once the basic sequence is completed, the system 
clock hardware responds automatically as follows:
1.
The clock switching hardware compares the 
COSC status bits with the new value of the 
NOSC control bits. If they are the same, the 
clock switch is a redundant operation. In this 
case, the OSWEN bit is cleared automatically 
and the clock switch is aborted.
2.
If a valid clock switch has been initiated, the 
LOCK (OSCCON<5>) and the CF 
(OSCCON<3>) status bits are cleared.
3.
The new oscillator is turned on by the hardware 
if it is not currently running. If a crystal oscillator 
must be turned on, the hardware waits until the 
Oscillator Start-up Timer (OST) expires. If the 
new source is using the PLL, the hardware waits 
until a PLL lock is detected (LOCK = 1).
4.
The hardware waits for 10 clock cycles from the 
new clock source and then performs the clock 
switch.
5.
The hardware clears the OSWEN bit to indicate a 
successful clock transition. In addition, the NOSC 
bit values are transferred to the COSC status bits.
6.
The old clock source is turned off at this time, 
with the exception of LPRC (if WDT or FSCM 
are enabled) or LP (if LPOSCEN remains set).
9.5
Fail-Safe Clock Monitor (FSCM)
The Fail-Safe Clock Monitor (FSCM) allows the device 
to continue to operate even in the event of an oscillator 
failure. The FSCM function is enabled by programming. 
If the FSCM function is enabled, the LPRC internal 
oscillator runs at all times (except during Sleep mode) 
and is not subject to control by the Watchdog Timer.
In the event of an oscillator failure, the FSCM 
generates a clock failure trap event and switches the 
system clock over to the FRC oscillator. Then the 
application program can either attempt to restart the 
oscillator or execute a controlled shutdown. The trap 
can be treated as a warm Reset by simply loading the 
Reset address into the oscillator fail trap vector.
If the PLL multiplier is used to scale the system clock, 
the internal FRC is also multiplied by the same factor 
on clock failure. Essentially, the device switches to 
FRC with PLL on a clock failure.
Note:
Primary Oscillator mode has three different 
submodes (XT, HS and EC), which are 
determined by the POSCMD<1:0> 
Configuration bits. While an application 
can switch to and from Primary Oscillator 
mode in software, it cannot switch among 
the different primary submodes without 
reprogramming the device.
Note 1: The processor continues to execute code 
throughout the clock switching sequence. 
Timing-sensitive code should not be 
executed during this time.
2: Direct clock switches between any 
primary oscillator mode with PLL and 
FRCPLL mode are not permitted. This 
applies to clock switches in either 
direction. In these instances, the 
application must switch to FRC mode as a 
transition clock source between the two 
PLL modes.
3: Refer to Section 39. “Oscillator 
(Part III)” (DS70216) in the “dsPIC33F/
PIC24H Family Reference Manual”
 for 
details.