532
SAM4CP [DATASHEET]
43051E–ATPL–08/14
When the counter reaches 0, the MOSCXTS bit is set, indicating that the main clock is valid. Setting the MOSCXTS bit in
the Interrupt Mask Register (PMC_IMR) can trigger an interrupt to the processor.
29.5.4 Main Clock Oscillator Selection
The user can select the source of the main clock from either the 4/8/12 MHz Fast RC Oscillator, the 3 to 20 MHz Crystal
or Ceramic Resonator-based oscillator.
The advantage of the 4/8/12 MHz Fast RC Oscillator is its fast start-up time. By default, this oscillator is selected to start
the system and when entering Wait Mode.
The advantage of the 3 to 20 MHz Crystal or Ceramic Resonator-based oscillator is the high level of accuracy provided.
The selection of the oscillator is made by writing the MOSCSEL bit in CKGR_MOR. The switch of the Main Clock source
is glitch free, so there is no need to run out of SLCK, PLLACK or PLLBCK in order to change the selection. The
MOSCSELS bit of PMC_SR indicates when the switch sequence is done.
Setting the MOSCSELS bit in PMC_IMR can trigger an interrupt to the processor.
Enabling the Fast RC Oscillator (MOSCRCEN = 1) and changing the Fast RC Frequency (MOSCCRF) at the same time
is not allowed.
The Fast RC must be enabled first and its frequency changed in a second step.
29.5.5 Switching Main Clock between the Main RC Oscillator and Fast Crystal Oscillator
Both sources must be enabled during the switchover operation. Only after completion can the unused oscillator be
disabled. If switching to fast crystal oscillator, the clock presence must first be checked according to what is described in
Section 29.5.6 ”Software Sequence to Detect the Presence of Fast Crystal”
because the source may not be reliable
(crystal failure or bypass on a non-existent clock).
29.5.6 Software Sequence to Detect the Presence of Fast Crystal
The frequency meter carried on CKGR_MCFR is operating on the selected main clock and not on the fast crystal clock
nor on the fast RC Oscillator clock.
Therefore, to check for the presence of the fast crystal clock, it is necessary to have the main clock (MAINCK) driven by
the fast crystal clock (MOSCSEL=1).
The following software sequence order must be followed:
MCK must select the slow clock (CSS=0 in the Master Clock Register (PMC_MCKR)).
Wait for the MCKRDY flag in PMC_SR to be 1.
The fast crystal must be enabled by programming 1 in the MOSCXTEN field in the CKGR_MOR register with the
MOSCXTST field being programmed to the appropriate value (see the Electrical Characteristics chapter).
Wait for the MOSCXTS flag to be 1 in PMC_SR to get the end of a start-up period of the fast crystal oscillator.
Then, MOSCSEL must be programmed to 1 in CKGR_MOR to select fast main crystal oscillator for the main clock.
MOSCSEL must be read until its value equals 1.
Then the MOSCSELS status flag must be checked in PMC_SR.
At this point, 2 cases may occur (either MOSCSELS = 0 or MOSCSELS = 1).
If MOSCSELS = 1, there is a valid crystal connected and its frequency can be determined by initiating a frequency
measure by programming RCMEAS in CKGR_MCFR.
If MOSCSELS = 0, there is no fast crystal clock (either no crystal connected or a crystal clock out of specification).
A frequency measure can reinforce this status by initiating a frequency measure by programming RCMEAS in
CKGR_MCFR.
If MOSCSELS=0, the selection of the main clock must be programmed back to the main RC oscillator by writing
MOSCSEL to 0 prior to disabling the fast crystal oscillator.
If MOSCSELS=0, the crystal oscillator can be disabled (MOSCXTEN=0 in the CKGR_MOR register).