
428
SAM G51 [DATASHEET]
11209C–ATARM–20-Dec-13
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.
22.5.4 Main Clock Oscillator Selection
The user can select either the 8/16/24 MHz fast RC oscillator or the 3 to 20 MHz crystal or ceramic resonator-based
oscillator to be the source of main clock.
The advantage of the 8/16/24 MHz fast RC oscillator is that it provides fast start-up time, this is why it is selected by
default (to start the system) and when entering wait mode.
The advantage of the 3 to 20 MHz crystal or ceramic resonator-based oscillator is that it is very accurate.
The selection 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 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.
22.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
(crystal failure or bypass on a non-existent clock).
22.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) register).
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.